對于一些簡單的爬蟲,python(基于python3)有更好的第三方庫來實現(xiàn)它,且容易上手。
Python標(biāo)準(zhǔn)庫–logging模塊
logging模塊能夠代替print函數(shù)的功能,將標(biāo)準(zhǔn)輸出到日志文件保存起來,利用loggin模塊可以部分替代debug
re模塊
正則表達(dá)式
sys模塊
系統(tǒng)相關(guān)模塊
sys.argv(返回一個列表,包含所有的命令行)
sys.exit(退出程序)
Python標(biāo)準(zhǔn)庫–urllib模塊
urllib.requset.urlioen可以打開HTTP(主要)、HTTPS、FTP、協(xié)議的URL
ca 身份驗證
data 以post方式提交URL時使用
url 提交網(wǎng)絡(luò)地址(全程 前端需協(xié)議名 后端需端口 http:/192.168.1.1:80)
timeout 超時時間設(shè)置
函數(shù)返回對象有三個額外的方法
geturl() 返回response的url信息 常用與url重定向
info()返回response的基本信息
getcode()返回response的狀態(tài)代碼
1,request
urllib.request最常見的用法是直接使用urllib.request.urlopen()來發(fā)起請求,但通常這樣是不規(guī)范的
一個完整的請求還應(yīng)該包括headers這樣的信息傳遞,可以這樣實
?
?
?
通常防止爬蟲被檢測,我們需要規(guī)定headers,偽造爬蟲頭部信息,但此方法一般用途不大。
2,BeautifulSoup
beautifulsoup的功能很強大,利用它我們可以實現(xiàn)網(wǎng)頁的輕松解析,省掉寫很多正則表達(dá)式的麻煩。
它擁有幾個強大的解析庫,包括 內(nèi)置的html解析器,lxml,html5lib。
一般默認(rèn)的是html解析器 html.parser
最好的大概是lxml了
?
?
?
展現(xiàn)beautifulsoup強大的標(biāo)簽選擇功能
獲取某個html標(biāo)簽的屬性:
print(soup.p['name'])
獲取某個標(biāo)簽的內(nèi)容:
print(soup.p.string)
?
獲取某個標(biāo)簽內(nèi)的所有內(nèi)容,存入列表中
plist=soup.p.contents
獲取某個標(biāo)簽內(nèi)的所有內(nèi)容,存入列表中
plist=soup.p.contents
?
find_all()標(biāo)簽選擇器
例如我們要找到id=content 的div標(biāo)簽的內(nèi)容
?
?
?成功爬取
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
