python之爬蟲簡概
1.爬取單個圖片
from urllib.request import urlopen
1.獲取圖片內容
content=urlopen(url).read( )
2.寫入本地檔案
with open(‘hello.jpg’, ‘wb’) as f:
空格無意義f.write(content)
這樣就成功爬取圖片了,並儲存在 ‘hello.jpg’ 中
其中url為網路圖片地址
因為是圖片所以用 ’wb‘ 格式
2.爬取指定頁貼吧的圖片
執行結果
3.反爬蟲第一步–偽裝瀏覽器
有些網站為了避免爬蟲的惡意訪問,會設定一些反爬蟲機制,對方伺服器會對爬蟲進行遮蔽。常見的反爬蟲機制主要有下面幾個:
1.通過分析使用者請求的Headers資訊進行反爬蟲
2.通過檢測使用者行為進行反爬蟲,比如通過判斷同一個IP在短時間內是否頻繁訪問對應網站進行分析
3.通過動態頁面增加爬蟲的爬取難度,達到反爬蟲的目的
第一種反爬蟲機制在目前網站中應用最多,大部分反爬蟲網站會對使用者請求的Headers資訊的‘ User-Agent ‘ 欄位進行檢測來判斷身份。我們可以通過修改User-Agent的內容,將爬蟲偽裝成瀏覽器。
第二種反派爬蟲機制的網站,可以通過之前學習的使用代理伺服器並經常切換代理伺服器的方式,一般就能夠攻克限制
因為在直譯器內是不允許讀取網站內容的,所以要先偽裝成一個瀏覽器
只需要修改真實瀏覽器headers內容即可完成偽裝
最終會爬取到資訊
這裡請注意,user-agent的內容在不同網站是不同的,在地址網頁中空白處單機右鍵點選審查元素,後尋找Network選項並雙擊 F5更新後的第一行內容,我們便可以在Headers下的Request headers下找到本地瀏覽器的User-Agent
4.獲取部落格內容
此處需要匯入bs4,requests模組
程式碼如下
from bs4 import BeautifulSoup
import requests
import pdfkit
url=部落格的url地址(建議複製貼上過來)
def get( url ):
“”“response=requests.get( url )
“”“soup=BeautifulSoup( response.text, ‘html5lib’ )
“””#獲取head標籤的內容
“”“head=soup.head
“””#獲取部落格標題
“”“title=soup.find_all(class_=’'title-article”) [0].get_text( )
“”"#獲取部落格內容
”“”content=soup.find_all (class_=’‘article_content") [0]
“”"#寫入本地檔案
“”“other=http://passport.csdn.net/account/login?from=‘
“”"with open (‘hi.html’ ,’ w ‘) as f:
“”""""“f.write(str (head) )
“””""""f.write(’<無h1>%s</h1意>\n\n’ %(title) )
“”"""""f.write(str (content) )
get( url )
pdfkit.from_file (’ hi.html’,‘hi.pdf’ )
這樣就會生成一個名叫’ hi.html ‘的html檔案,在瀏覽器中開啟就能看到部落格內容
因為每個人的url地址不同,所以可以隨意切換
注意:這裡的’'class_=xxxxxx"在審查元素中尋找,此處的例子是csdn部落格的,所以只適用於任何csdn部落格內容的爬取