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

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