1. 程式人生 > >python之爬蟲簡概

python之爬蟲簡概

1.爬取單個圖片
from urllib.request import urlopen

url=‘http://imgsrc.baidu.com/forum/w%3D580/sign=e23a670db9b7d0a27bc90495fbee760d/38292df5e0fe9925f33f62ef3fa85edf8db17159.jpg

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部落格內容的爬取