一、前言
眾所周知,百度上直接搜索關鍵字會出來一大堆東西,時常還會伴隨有廣告出現(xiàn),不小心就點進去了,還得花時間退出來,有些費勁。
最近群里有個小伙伴提出一個需求,需要獲取百度上關于糧食的相關講話文章標題和鏈接。正好小編最近在學習爬蟲,就想著拿這個需求來練練手。我們都知道,對Python來說,有大量可用的庫,實現(xiàn)起來并不難,動手吧。
二、項目目標
爬取百度上關鍵字為“糧食”的搜索結果,并保存,提交給客戶,用于進一步分析我國糧食政策。
三、項目準備
軟件:PyCharm
需要的庫:json,requests,etree
四、項目分析
1)如何進行關鍵詞搜索?
利用response庫,直接Get網(wǎng)址獲得搜索結果。
2)如何獲取標題和鏈接?
利用etree對原代碼進行規(guī)范梳理后,通過Xpath定位到文章標題和href,獲取標題和文章鏈接。
3)如何保存搜索結果?
新建txt文件,對搜索結果循環(huán)寫入,保存即可。
五、項目實現(xiàn)
1、第一步導入需要的庫
importjson
importrequests
fromlxmlimportetree
2、第二步用requests進行請求搜索
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、第三步對獲取的源代碼進行整理分析,通過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)
以上內容為大家介紹了用Python爬取百度搜索結果,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://m.2667701.com/