python爬蟲采集


python爬蟲采集

最近有個項目需要采集一些網站網頁,以前都是用php來做,但現在十分流行用python做采集,研究了一些做一下記錄。

采集數據的根本是要獲取一個網頁的內容,再根據內容篩選出需要的數據,

python的好處是速度快,支持多線程,高並發,可以用來大量采集數據,缺點就是和php相比,python的輪子和代碼庫貌似沒有php全,而且python的安裝稍微麻煩了點,折騰了好久。

python3的安裝見連接:

https://www.cnblogs.com/mengzhilva/p/11059329.html

工具編輯器:

PyCharm :一款很好用的python專用編輯器,可以編譯和運行,支持windows

python采集用到的庫:

requests:用來獲取網頁的內容,支持https,用戶登錄信息等,很強大

lxml:用來解析采集的html內容,十分好用,比較靈活,但很多用法不好找,api文檔不好找。

pymysql:連接操作mysql,這個就不用說了,將采集到的信息存到數據庫。

基本上這三個就可以支持采集網頁

安裝代碼:

用pip安裝調用代碼:

pip install pymysql
pip install requests
pip install lxml

 采集數據:

采集的代碼和打印的結果:

# coding=utf-8 #設置頁碼編碼,解決中文亂碼
import re
import pymysql
import requests
from mydb import *
from lxml import etree
#模擬瀏覽器訪問
headers = {
'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}
#requests獲取網頁
respose = requests.get('https://www.cnblogs.com/mengzhilva/', headers=headers)
content = respose.text #獲取內容
html = etree.HTML(content) #用lxml格式化
result = etree.tostring(html, encoding='utf-8') # 解析對象輸出代碼
titles = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/text()') #查找相應數據
url = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/@href') #查找相應數據
print(titles)
print(url)
i=1
for val in titles:
url = html.xpath('//div[@class="day"][' + format(i) + ']//div[@class="postTitle"]//a/@href') # 根據循環查找列表地址
print(val)
print(url)
#這里可以調用單獨的函數來抓取詳情頁內容
i+=1


免責聲明!

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



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