import requests
from bs4 import beautifulsoup
import bs4
defgethtmltext
(url)
:#提取
try:
#爬取網頁的通用**框架
r = requests.get(url,timeout =30)
r.raise_for_status(
) return r.text
except
:return
'爬取失敗'
deffillunivlist
(ulist,html)
:#儲存關鍵資訊
soup = beautifulsoup(html,
'html.parser'
)#煲湯準備 (解析器)
for tr in soup.find(
'tbody'
).children:
#從tbody的兒子節點
ifisinstance
(tr,bs4.element.tag)
:#判斷tr標籤的型別是否是標籤型別
tds = tr(
'td'
)#將所有的td標籤存入tds列表中相當於tr.find_all('td')
if tds[2]
.string ==
'山東'
:[tds[0]
.string,tds[1]
.string,tds[2]
.string,tds[3]
.string]
)## pass
defprintunivlist
(ulist)
:#列印
print
(len
(ulist)
)print
('\t^10}\t\t'
.format
('排名'
,'學校名稱'
,'省份'
,'總分'
,chr
(12288))
)for i in
range
(len
(ulist)):
u = ulist[i]
print
('\t^10}\t\t'
.format
(u[0
],u[1]
,u[2
],u[3]
,chr
(12288))
)def
main()
:
uinfo =
url =
''html = gethtmltext(url)
#呼叫提取函式
fillunivlist(uinfo,html)
#呼叫儲存關鍵資訊函式
printunivlist(uinfo)
#呼叫列印函式
main(
)
爬取獵聘網職位 requests bs4
本人傾向於用bs4匹配,資料量不大,怎麼簡單怎麼來了 最後寫入json檔案import requests import json from bs4 import beautifulsoup url defget page 獲取頁數 職業 page input 請輸入頁數 job input 請輸入職...
requests bs4使用(post方式)
現在很多 都會用到前後端分離的開發策略,前端只是負責渲染,資料通過其他路由去獲取,比如如果你直接用get方式請求這個網頁的話是獲取不到主要內容的 比如這個例子中 中的資料 因為沒有執行他請求資料的js,提示可以通過chrom瀏覽器network觀察他真實請求資料的url,這裡用了一種非同步的技術。真...
用Request爬取實戰
如果想要在請求的時候增加一些請求頭,用request.request。比如要增加乙個user agent 在拉勾網的職業資訊通過另外的 再通過js嵌入到主頁面的html 當中的 真正的職業資訊 在json.cn中解碼得 請求頁面,還有請求方式為post from urllib import requ...