爬蟲示例程式

2021-07-25 18:58:32 字數 2697 閱讀 3406

importrequests

frombs4importbeautifulsoup

try:

importxml.etree.celementtreeaset

exceptimporterror:

importxml.etree.elementtreeaset

base_url = ''

response = requests.get(base_url + '/people')

soup = beautifulsoup(response.text, 

'html.parser')

a_family_array = soup.find('div'

, id='article').ul.findall('a')

#存放每個演員名字和**的dict

name_url = dict()

#演員總數

peoplenum = 0

dis_num = 0

#遍歷所有姓氏

fora_familyina_family_array:

response = requests.get(base_url + a_family['href'])

soup = beautifulsoup(response.text, 

'html.parser')

#得到所有演員的a標籤

a_name_array = soup.find('div'

, id='article').findall('a')

#遍歷所有演員

fora_nameina_name_array:

name_url[a_name['title']] = base_url + a_name['href']

peoplenum += 1

print(a_name['title'], base_url + a_name['href'])

xml_name_root = et.element('people')

xml_people_root = et.element('people')

count = 0

fornameinname_url:

person_abs_url = name_url[name]

# 將所有演員姓名儲存到xml中

xml_name = et.subelement(xml_name_root, 

'name')

xml_name.text = name

ifcount <= 1000:

# 將演員姓名,url,介紹放在xml中

response = requests.get(person_abs_url)

soup = beautifulsoup(response.text, 

'html.parser')

xml_person = et.subelement(xml_people_root, 

'person')

xml_name = et.subelement(xml_person, 

'name')

xml_name.text = name

xml_url = et.subelement(xml_person, 

'url')

xml_url.text = person_abs_url

xml_dis = et.subelement(xml_person, 

'dis')

# 去掉網頁中「活動年表」以後的文字

importre

try:

all_text = soup.find('div'

, id='article').table.text.strip()

useful_text = re.compile('活動年表.*').sub(''

, all_text)

xml_dis.text = useful_text

count += 1

print('抓取了第'

, count, 

'個演員'

, name, 

'的資訊')

except:

pass

tree_name = et.elementtree(xml_name_root)

f = open('e:/name.xml'

, 'wb')

tree_name.write(f)

f.close()

tree_people = et.elementtree(xml_people_root)

f = open('e:/discription.xml'

, 'wb')

tree_people.write(f)

f.close()

EXT JS 6示例程式 Login示例程式

1.用sencha cmd生成應用程式模版 2.建立login view元件 資料夾下,有預設的 main 資料夾,這個資料夾包含了檔案main.js,maincontroller.js,和 mainmodel.js 資料夾下建立乙個資料夾 login 在 login 資料夾下,新建兩個檔案 log...

UDP Socket示例程式

通常我們涉及到的網路程式設計,也稱為socket程式設計,多數是tcp和udp協議的程式設計,二者最大的區別就是 1.tcp是可靠的傳輸,需要三次握手建立連線再傳資料,而udp是無連線的,即使沒有接收方,也可以乙個勁往乙個位址發資料,所以說是不可靠的傳輸模式。2.tcp是基於流模式的,udp是基於資...

opencv示例程式

工欲善其事必先利其器,首先當然是配置環境安裝軟體啦。我安裝的vs2012 opencv2.48以及opencv3.0。具體安裝步驟按照淺墨大神的部落格進行即可 include opencv簡單程式標配標頭檔案 using namespace cv 使用cv命名空間 void main 命名空間 op...