1、背景:需要爬取網上的資訊,ubuntu系統下 使用python完成
使用方法 from bs4 import beautifulsoup
requests(pip install requests):用python語言基於urllib編寫的,採用的是apache2 licensed開源協議的http庫,requests它會比urllib更加方便,可以節約我們大量的工作
使用方法直接 import requests
3、網頁原始碼分析準備工作
開啟乙個待爬取內容的網頁,開啟開發者模式或者按f12即可看到相關的html的原始碼資訊,chrome瀏覽器中滑鼠停在原始碼某一行出,網頁上相應的位置會高亮,所以很好定位到自己想要的資訊對應的字段
4、敲**
a、簡單的獲取網頁資訊,其中會遇到頻繁訪問某乙個**被視為攻擊或者其他導致獲取資訊失敗,
下面的try操作是最簡單的防反爬取策略,延長訪問時間間隔
最後的print語句可以將獲取的html資訊列印到終端
#python自帶的獲取方式
url=url0+str(i)+"/#conghua"
html=""
for j in range(20):
try:
html=urlopen(url).read().decode('utf-8')
except exception as e:
if j>=9:
time.sleep(10)
else:
time.sleep(0.5)
else:
time.sleep(0.1)
break
print(html)
b、當然了有些**反爬取較強,所以需要更高以及的應對策略,使用requests模組,模擬瀏覽器訪問
url=""#輸入**鏈結即可
headers=#chorme
'''headers=#firefox
'''request=requests.get(url,headers=headers)
request.close()
request.encoding="utf-8"
html=request.text
print(html)
c、登入賬號解決反爬取
這個僅僅作為總結記錄,有待測試效果
#login settings
urllogin = "......login"#登入介面**
data =
response = requests.post(urllogin,data)
cookie = response.cookies.get_dict()
print(cookie)
url=」......「#爬取網頁**
request = requests.get(url, cookies=cookie)
request.close()
request.encoding = "utf-8"
html = request.text
print(html)
d、獲取html資訊後就是相關的解析提取自己想要的字段資訊了
soup=beautifulsoup(html,features="html.parser")
titles=soup.find_all("a",)#根據各自的需求提取資訊 主要根據網頁原始碼資訊進行修改這一句**,也可以利用正則表達進行提取資訊(這個暫時沒有試)
python爬蟲小記
builtins cached doc file loader name package path spec error parse request response request的使用 1.request請求最簡單的操作是用urlopen方法,如下 import urllib.request r...
python爬蟲小記
1 在寫爬蟲的時候,思考 的總體格局,讓 既可以捕捉異常又容易閱讀 2 具有周密的異常處理功能,會讓快速穩定地網路資料採集變得簡單易行。3 面對頁面解析難題 gordian knot 的時候,不假思索地直接寫幾行語句來抽取資訊是非常直接的做法。但是,像這樣魯莽放縱地使用技術,只會讓程式變得難以除錯或...
爬蟲小記(2)
自從兩個月前說要學習爬蟲開始,我其實做了好多準備了,只是開始的有點晚了吧。希望後面的進度能夠變的快一點。使用這些庫就能實現我們想要做的一些基本的功能,包括爬取一些簡單的 的內容,requests庫的功能是我覺得最實用的,只依靠這樣乙個庫我就可以實現解析乙個url,獲得網頁裡的內容,還可以判斷在連線u...