python批量获取百度贴吧_python网络爬虫案例:批量爬取百度贴吧页面数据
?先我們創(chuàng)建?個 python?件, tiebaSpider.py,我們要完成的是,輸??個百度貼吧的地址,?如:
發(fā)現(xiàn)規(guī)律了吧,貼吧中每個??不同之處,就是 url 最后的 pn 的值,其余的都是?樣的,我們可以抓住這個規(guī)律。
1、簡單寫?個?爬?程序,來爬取百度 LOL 吧的所有??
我們已經(jīng)之前寫出?個爬取?個??的代碼。現(xiàn)在,我們可以將它封裝成?個?函數(shù) loadPage,供我們使?。
def loadPage(url):
'''
'''
通過 URL 請求爬取到 html 靜態(tài)??源代碼
url:需要爬取的 url 地址
req = urllib2.Request(url)
response = urllib2.urlopen(req)
html = response.read()
return html
復(fù)制代碼
接下來,我們寫?個百度貼吧爬?接?,我們需要傳遞 3 個參數(shù)給這個接?, ?個是我們要爬取的 url 地址,以及起始?碼和終??碼,表示要爬取?碼的范圍。
def tiebaSpider(url, beginPage, endPage):
'''
'''
百度貼吧爬?核?程序:
url: 要爬取的 url 地址
beginPage: 爬?貼吧的起始?數(shù)
endPage: 爬?貼吧的終??數(shù)
user_agent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1
; Trident/5.0;" # IE9.0 的 User-Agent
headers = {"User-Agent":user_agent}
for i in range(beginPage, endPage+1):
pn = 50 * (i - 1)
html = loadPage(url+str(pn))
復(fù)制代碼
最后如果我們希望將爬取到了每?的信息存儲在本地磁盤上,我們可以簡單寫?個存儲?件的接?。
def writeFile(file_name, text):
'''
'''
將字符串內(nèi)容寫到?件中:
file_name: ?件路徑
text: 要寫進(jìn)的字符串
print "正在存儲?件" + file_name
f = open(file_name, 'w+')
f.write(text)
f.close()
復(fù)制代碼
ok,接下來就是寫?個 main 函數(shù)吧,然后提示?戶輸?即將爬取的百度貼吧 url 地址。 ( 注意 :百度貼吧最后?碼” pn= “后的數(shù)字,這些數(shù)字為我們傳?的?碼參數(shù),所以我們再提供的時候不能包括數(shù)字)
if name == ' main ':
tiebaurl = str(raw_input('請輸?貼吧的地址, 去掉 pn=后?的數(shù)字:'))
beginPage = int(raw_input('請輸?開始的?數(shù)'))
endPage = int(raw_input('請輸?結(jié)束的?數(shù)'))
tiebaSpider(tiebaurl, beginPage, endPage)
復(fù)制代碼
綜上, 全部代碼完成。好了,最后我們測試?下。
2、爬蟲代碼測試
運(yùn)?后,輸?lol 吧的 url 地址 tieba.baidu.com/f?kw=l... ( 注意=號后?不要加數(shù)字,因?yàn)槲覀円?動添加 )
Power@PowerMac ~$ python tiebaSpider.py
請輸?貼吧的地址, 去掉 pn=后?的數(shù)字: http://tieba.baidu.com/f?kw=lol&i
e=utf-8&pn=
請輸?開始的?數(shù) 5 請輸?結(jié)束
的?數(shù) 10
正在下載第 5 個??
正在存儲?件 5.html 正
在下載第 6 個?? 正在
存儲?件 6.html 正在下
載第 7 個?? 正在存儲
?件 7.html 正在下載第
8 個?? 正在存儲?件
8.html 正在下載第 9 個
?? 正在存儲?件
9.html 正在下載第 10
個?? 正在存儲?件
10.html
復(fù)制代碼
3、總結(jié)
其實(shí)很多?站都是這樣的,當(dāng)前?址下會有?個 html??,分別對應(yīng)?址后的??序號。
這樣?個簡單的爬?程序就可以批量獲取?站??源碼,然后我們就可以從中篩選??想要的數(shù)據(jù)信息了。
點(diǎn)擊獲取全套python爬蟲視頻教程,從爬蟲基礎(chǔ)到高級項(xiàng)目實(shí)戰(zhàn)教程,非常值得零基礎(chǔ)的人學(xué)習(xí)爬蟲,理論+項(xiàng)目實(shí)踐,終成爬蟲大神。
總結(jié)
以上是生活随笔為你收集整理的python批量获取百度贴吧_python网络爬虫案例:批量爬取百度贴吧页面数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在MyBatis中优雅的使用枚举
- 下一篇: KeyMob应用开发者服务平台帮助开发者