成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

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

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

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

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

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

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

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

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

2、涉及的庫:requests、lxml、urrilb

【四、項目分析】

1、反爬措施的處理

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

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

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

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

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

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

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

【五、項目實施】

1、創(chuàng)建一個名為BaiduImageSpider的類,定義一個主方法main和初始化方法init。導(dǎo)入需要的庫。
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("請輸入你要查詢的信息:")

   spider.main()
       pass
if __name__ == '__main__':
   spider= ImageSpider()
   spider.main()
2、準(zhǔn)備url地址和請求頭headers 請求數(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ā)送請求 獲取響應(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("請輸入你要查詢的信息:")
   key_word = parse.quote(inout_word)
   spider = BaiduImageSpider(key_word)
   spider.main()
3、用xpath進(jìn)行數(shù)據(jù)分析

3.1、chrome_Xpath插件安裝

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

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

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

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

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

3.2、chrome_Xpath插件使用

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

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

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

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

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

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

'''獲取鏈接函數(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
           '''接下來對帖子地址發(fā)送請求  將保存到本地'''
           self.write_image(t_link)

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

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

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

def write_image(self, t_link):
     xpath = "//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ò)爬蟲抓取百度貼吧評論區(qū)圖片和視頻

【六、效果展示】

1、點擊運行,如下圖所示(請輸入你要查詢的信息):

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

2、以吳京為例輸入,回車:

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

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

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

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

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

總結(jié):

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

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

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

網(wǎng)頁標(biāo)題:如何用Python網(wǎng)絡(luò)爬蟲抓取百度貼吧評論區(qū)圖片和視頻-創(chuàng)新互聯(lián)
當(dāng)前地址:http://jinyejixie.com/article20/jgsjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、微信公眾號、網(wǎng)頁設(shè)計公司、商城網(wǎng)站、電子商務(wù)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
阿巴嘎旗| 磐石市| 湘乡市| 金坛市| 那坡县| 和平区| 黑山县| 龙泉市| 文成县| 静安区| 鄂州市| 九江县| 尚志市| 科技| 锦屏县| 林芝县| 大余县| 西乡县| 阳春市| 图片| 江西省| 类乌齐县| 旌德县| 普兰县| 南开区| 拜城县| 昔阳县| 读书| 苍南县| 南昌市| 泰和县| 磐安县| 漠河县| 灵石县| 博湖县| 双柏县| 广东省| 沾化县| 赣州市| 留坝县| 孟州市|