一、前言
眾所周知,百度上直接搜索關(guān)鍵字會(huì)出來(lái)一大堆東西,時(shí)常還會(huì)伴隨有廣告出現(xiàn),不小心就點(diǎn)進(jìn)去了,還得花時(shí)間退出來(lái),有些費(fèi)勁。
最近群里有個(gè)小伙伴提出一個(gè)需求,需要獲取百度上關(guān)于糧食的相關(guān)講話文章標(biāo)題和鏈接。正好小編最近在學(xué)習(xí)爬蟲(chóng),就想著拿這個(gè)需求來(lái)練練手。我們都知道,對(duì)Python來(lái)說(shuō),有大量可用的庫(kù),實(shí)現(xiàn)起來(lái)并不難,動(dòng)手吧。
二、項(xiàng)目目標(biāo)
爬取百度上關(guān)鍵字為“糧食”的搜索結(jié)果,并保存,提交給客戶(hù),用于進(jìn)一步分析我國(guó)糧食政策。
三、項(xiàng)目準(zhǔn)備
軟件:PyCharm
需要的庫(kù):json,requests,etree
四、項(xiàng)目分析
1)如何進(jìn)行關(guān)鍵詞搜索?
利用response庫(kù),直接Get網(wǎng)址獲得搜索結(jié)果。
2)如何獲取標(biāo)題和鏈接?
利用etree對(duì)原代碼進(jìn)行規(guī)范梳理后,通過(guò)Xpath定位到文章標(biāo)題和href,獲取標(biāo)題和文章鏈接。
3)如何保存搜索結(jié)果?
新建txt文件,對(duì)搜索結(jié)果循環(huán)寫(xiě)入,保存即可。
五、項(xiàng)目實(shí)現(xiàn)
1、第一步導(dǎo)入需要的庫(kù)
importjson
importrequests
fromlxmlimportetree
2、第二步用requests進(jìn)行請(qǐng)求搜索
headers={
"User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/88.0.4324.104Safari/537.36"
}
response=requests.get('https://www.baidu.com/s?wd=糧食&lm=1',headers=headers)
3、第三步對(duì)獲取的源代碼進(jìn)行整理分析,通過(guò)Xpath定位需要的資源
r=response.text
html=etree.HTML(r,etree.HTMLParser())
r1=html.xpath('//h3')
r2=html.xpath('//*[@class="c-abstract"]')
r3=html.xpath('//*[@class="t"]/a/@href')
4、第四步把有用資源循環(huán)讀取保存
foriinrange(10):
r11=r1[i].xpath('string(.)')
r22=r2[i].xpath('string(.)')
r33=r3[i]
withopen('ok.txt','a',encoding='utf-8')asc:
c.write(json.dumps(r11,ensure_ascii=False)+'\n')
c.write(json.dumps(r22,ensure_ascii=False)+'\n')
c.write(json.dumps(r33,ensure_ascii=False)+'\n')
print(r11,end='\n')
print('------------------------')
print(r22,end='\n')
print(r33)
以上內(nèi)容為大家介紹了用Python爬取百度搜索結(jié)果,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.kei0345678.cn/