import requests
from bs4 import beautifulsoup
import json
import datetime
defgethtml
(url)
: headers =
try:
r = requests.get(url, headers=headers)
r.raise_for_status
return r.text
except
:print
('爬取失敗'
)return
''def
getinfo
(infolist, html)
: soup = beautifulsoup(html,
'lxml'
)for tables in soup.find_all(
'table'):
pre_table_title = tables.find_previous(
'div'
).find_all(
'h3'
)for pre_title in pre_table_title:
if'參賽學員'
in pre_title:
defdealinfo
(infolist)
:"""
解析目標html處的選手資訊
:param infolist:
:return:
"""bs = beautifulsoup(
str(infolist)
,'lxml'
) all_trs = bs.find_all(
'tr'
) all_starts =
for tr in all_trs[1:
]:star =
all_tds = tr.find_all(
'td'
)# 姓名
star[
'name'
]= all_tds[0]
.text
star[
'link']=
''+ all_tds[0]
.find(
'a')
.get(
'href'
) star[
'area'
]= all_tds[1]
.text
star[
'constellation'
]= all_tds[2]
.text
star[
'flower_word'
]= all_tds[3]
.text
# 公司處理
ifnot all_tds[4]
.find(
'a')
isnone
: star[
'company'
]= all_tds[4]
.find(
'a')
.text
else
: star[
'company'
]= all_tds[4]
.text
return all_starts
deftransjson
(path, filename, infomation)
:# 化成json格式
json_data = json.dumps(infomation, sort_keys=
false
, indent=
4, separators=
(','
,':'))
print
(json_data)
with
open
(path + filename +
'.json'
,'w'
, encoding=
'utf-8'
)as f:
json.dump(json_data, f, ensure_ascii=
false
)if __name__ ==
'__main__'
: url =
'/item/青春有你第二季'
html = gethtml(url)
infolist =
getinfo(infolist, html)
infomation = dealinfo(infolist)
print
('共%d位選手。'
%len
(infomation)
)for info in infomation:
print
(info)
# 獲取當天的日期,並進行格式化,用於後面檔案命名,格式:20200420
today = datetime.date.today(
).strftime(
'%y%m%d'
) path =
'' filename = today
# transjson(path, filename, infomation)
輸出結果是:
共109位選手。
process finished with exit code 0
乙個簡單的爬蟲例項
獲取網頁html文字內容 usr bin python coding utf 8 import urllib import re 根據url獲取網頁html內容 defgethtmlcontent url page urllib.urlopen url return page.read 從html中...
乙個百度一樣的分頁
pager pagees pager request.getattribute page int pn pagees.getnowpager 當前頁 int pt pagees.gettotalpage 總頁數 int shownum 5 所顯示 if pagees.getnowpager 1 if...
乙個前百度工程師看百度的狼性
戰略 在李彥巨集的那封信裡談到了移動搜尋的戰略,也談到了危機,可惜沒有文章提到過危機是怎麼產生的。記得三年前,還是2009年,還是華為的那位神童李一男做cto,我作為一名底層的在做移動搜尋的工程師有幸能和他有過大致如下的對話 最近蘋果的iphone和安卓的手機勢頭很猛,不知道公司有沒有在這方面的行動...