如何通過(guò)搜索關(guān)鍵字來(lái)獲取百度貼吧評(píng)論區(qū)的圖片和視頻?
【一、項(xiàng)目背景】
百度貼吧是全球最大的中文交流平臺(tái),你是否跟我一樣,有時(shí)候看到評(píng)論區(qū)的圖片想下載呢?或者看到一段視頻想進(jìn)行下載呢?
今天,小編帶大家通過(guò)搜索關(guān)鍵字來(lái)獲取評(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)站反爬蟲處理措施很多,測(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的類,定義一個(gè)主方法main和初始化方法init。導(dǎo)入需要的庫(kù)。import requestsfrom lxml import etreefrom urllib import parseclass BaiduImageSpider(object): def __init__(self, tieba_name): pass def main(self): passif __name__ == '__main__': inout_word = input("請(qǐng)輸入你要查詢的信息:")
spider.main() passif __name__ == '__main__': spider= ImageSpider() spider.main()
2、準(zhǔn)備url地址和請(qǐng)求頭headers 請(qǐng)求數(shù)據(jù)。import requestsfrom lxml import etreefrom urllib import parseclass 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_h(yuǎn)tml = etree.HTML(html) r_list = parse_h(yuǎn)tml.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()

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
8月5日立即報(bào)名>> 【在線會(huì)議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
-
8月14日立即報(bào)名>> 【在線研討會(huì)】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
-
精彩回顧立即查看>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
精彩回顧立即查看>> OFweek 2025 具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
推薦專題
- 1 AI產(chǎn)業(yè)的新高度!英偉達(dá)成為全球首家市值破4萬(wàn)億美元的公司
- 2 傳魏建軍與賈躍亭合作,長(zhǎng)城汽車出海美國(guó)
- 3 一文讀懂:到底什么是 “具身智能” ?
- 4 黃仁勛:與雷軍長(zhǎng)期合作,共探AI智駕
- 5 具身智能泡沫爭(zhēng)議下,華映資本尋找「穿越周期者」
- 6 中國(guó)平安們欲靠AI守“陣地”
- 7 官宣:智元機(jī)器人借殼上市,A股人形機(jī)器人第一股!
- 8 華為讓渡“三界”銷售主導(dǎo)權(quán),智界高管:終于能全力奔跑了
- 9 借仿生手實(shí)現(xiàn)突圍,國(guó)產(chǎn)靈巧手破局“不可能三角”
- 10 DeepSeek R2加持,中國(guó)AI與芯片產(chǎn)業(yè)迎來(lái)新一輪協(xié)同進(jìn)化