python爬蟲常用模塊


對於一些簡單的爬蟲,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標簽的內容

 

 

 

 成功爬取

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM