真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻-創(chuàng)新互聯(lián)

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),鎮(zhèn)坪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:鎮(zhèn)坪等地區(qū)。鎮(zhèn)坪做網(wǎng)站價(jià)格咨詢:18980820575

百度貼吧是全球大的中文交流平臺(tái),你是否跟我一樣,有時(shí)候看到評(píng)論區(qū)的圖片想下載呢?或者看到一段視頻想進(jìn)行下載呢?

今天,帶大家通過(guò)搜索關(guān)鍵字來(lái)獲取評(píng)論區(qū)的圖片和視頻。

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

【二、項(xiàng)目目標(biāo)】

實(shí)現(xiàn)把貼吧獲取的圖片或視頻保存在一個(gè)文件。

【三、涉及的庫(kù)和網(wǎng)站】

1、網(wǎng)址如下:

https://tieba.baidu.com/f?ie=utf-8&kw=吳京&fr=search

2、涉及的庫(kù):requests、lxml、urrilb

【四、項(xiàng)目分析】

1、反爬措施的處理

前期測(cè)試時(shí)發(fā)現(xiàn),該網(wǎng)站反爬蟲(chóng)處理措施很多,測(cè)試到有以下幾個(gè):

1) 直接使用requests庫(kù),在不設(shè)置任何header的情況下,網(wǎng)站直接不返回?cái)?shù) 據(jù)。

2) 同一個(gè)ip連續(xù)訪問(wèn)40多次,直接封掉ip,起初我的ip就是這樣被封掉的。

為了解決這兩個(gè)問(wèn)題,最后經(jīng)過(guò)研究,使用以下方法,可以有效解決。

獲取正常的 http請(qǐng)求頭,并在requests請(qǐng)求時(shí)設(shè)置這些常規(guī)的http請(qǐng)求頭。

2、如何實(shí)現(xiàn)搜索關(guān)鍵字?

通過(guò)網(wǎng)址我們可以發(fā)現(xiàn)只需要在kw=() ,括號(hào)中輸入你要搜索的內(nèi)容即可。這樣就可以用一個(gè){}來(lái)替代它,后面我們?cè)谕ㄟ^(guò)循環(huán)遍歷它。

【五、項(xiàng)目實(shí)施】

1、創(chuàng)建一個(gè)名為BaiduImageSpider的類(lèi),定義一個(gè)主方法main和初始化方法init。導(dǎo)入需要的庫(kù)。
import requests
from lxml import etree
from urllib import parse
class BaiduImageSpider(object):
   def __init__(self, tieba_name):
       pass
   def main(self):
       pass
if __name__ == '__main__':
   inout_word = input("請(qǐng)輸入你要查詢的信息:")

   spider.main()
       pass
if __name__ == '__main__':
   spider= ImageSpider()
   spider.main()
2、準(zhǔn)備url地址和請(qǐng)求頭headers 請(qǐng)求數(shù)據(jù)。
import requests
from lxml import etree
from urllib import parse
class BaiduImageSpider(object):
   def __init__(self, tieba_name):
         self.tieba_name = tieba_name #輸入的名字
       self.url = "http://tieba.baidu.com/f?kw={}&ie=utf-8&pn=0"
       self.headers = {
           'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)'
       }

   '''發(fā)送請(qǐng)求 獲取響應(yīng)'''
   def get_parse_page(self, url, xpath):
       html = requests.get(url=url, headers=self.headers).content.decode("utf-8")
       parse_html = etree.HTML(html)
       r_list = parse_html.xpath(xpath)
       return r_list
   def main(self):
       url = self.url.format(self.tieba_name)
if __name__ == '__main__':
   inout_word = input("請(qǐng)輸入你要查詢的信息:")
   key_word = parse.quote(inout_word)
   spider = BaiduImageSpider(key_word)
   spider.main()
3、用xpath進(jìn)行數(shù)據(jù)分析

3.1、chrome_Xpath插件安裝

1) 這里用到一個(gè)插件。能夠快速檢驗(yàn)我們爬取的信息是否正確。具體安裝方法如下。

2) 百度下載chrome_Xpath_v2.0.2.crx, chrome瀏覽器輸入:chrome://extensions/

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

3) 直接將chrome_Xpath_v2.0.2.crx拖動(dòng)至該擴(kuò)展程序頁(yè)面 ;

4) 如果安裝失敗,彈框提示“無(wú)法從該網(wǎng)站添加應(yīng)用、擴(kuò)展程序和用戶腳本”,遇到這個(gè)問(wèn)題,解決方法 是:打開(kāi)開(kāi)發(fā)者模式,將crx文件(直接或后綴修改為rar)并解壓成文件夾,點(diǎn)擊開(kāi)發(fā)者模式的加載已解壓的擴(kuò)展程序,選擇解壓后的文件夾,點(diǎn)擊確定,安裝成功;

3.2、chrome_Xpath插件使用

上面我們已經(jīng)安裝好了chrome_Xpath插件,接下來(lái)我們即將使用它。
1) 打開(kāi)瀏覽器,按下快捷鍵F12 。2) 選擇元素,如下圖所示。

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

3) 右鍵,然后選擇,“Copy XPath”,如下圖所示。

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

3.3、編寫(xiě)代碼,獲取鏈接函數(shù)。

上面我們已經(jīng)獲取到鏈接函數(shù)的Xpath路徑,接下來(lái)定義一個(gè)獲取鏈接函數(shù)get_tlink,并繼承self,實(shí)現(xiàn)多頁(yè)抓取。

'''獲取鏈接函數(shù)'''

   def get_tlink(self, url):
       xpath = '//div[@class="threadlist_lz clearfix"]/div/a/@href'
       t_list = self.get_parse_page(url, xpath)
       # print(len(t_list))
       for t in t_list:
           t_link = "http://www.tieba.com" + t
           '''接下來(lái)對(duì)帖子地址發(fā)送請(qǐng)求  將保存到本地'''
           self.write_image(t_link)

4、保存數(shù)據(jù)

這里定義一個(gè)write_image方法來(lái)保存數(shù)據(jù),如下所示。

 '''保存到本地函數(shù)'''

def write_image(self, t_link):
     xpath = "http://div[@class='d_post_content j_d_post_content clearfix']/img[@class='BDE_Image']/@src | //div[@class='video_src_wrapper']/embed/@data-video"
       img_list = self.get_parse_page(t_link, xpath)      
       for img_link in img_list:  
           html = requests.get(url=img_link, headers=self.headers).content
           filename = "百度/"+img_link[-10:]
       
           with open(filename, 'wb') as f:
               f.write(html)
               print("%s下載成功" % filename)


如下圖:

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

【六、效果展示】

1、點(diǎn)擊運(yùn)行,如下圖所示(請(qǐng)輸入你要查詢的信息):

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

2、以吳京為例輸入,回車(chē):

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

3、將圖片下載保存在一個(gè)名為“百度”文件夾下,這個(gè)文件夾需要你提前在本地新建好。務(wù)必記得提前在當(dāng)前代碼的同級(jí)目錄下,新建一個(gè)名為“百度”的文件夾,否則的話系統(tǒng)將找不到該文件夾,會(huì)報(bào)找不到“百度”這個(gè)文件夾的錯(cuò)誤。

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

4、下圖中的MP4就是評(píng)論區(qū)的視頻。

如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻

總結(jié):

1、不建議抓取太多數(shù)據(jù),容易對(duì)服務(wù)器造成負(fù)載,淺嘗輒止即可。

2、本文基于Python網(wǎng)絡(luò)爬蟲(chóng),利用爬蟲(chóng)庫(kù),實(shí)現(xiàn)百度貼吧評(píng)論區(qū)爬取。就Python爬取百度貼吧的一些難點(diǎn), 進(jìn)行詳細(xì)的講解和提供有效的解決方案。
3、歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。學(xué)習(xí)requests 庫(kù)的使用以及爬蟲(chóng)程序的編寫(xiě)。

關(guān)于如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


本文題目:如何用Python網(wǎng)絡(luò)爬蟲(chóng)抓取百度貼吧評(píng)論區(qū)圖片和視頻-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/jgsjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部