如何通過(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)站反爬蟲(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 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è)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
推薦專題