手把手教你用Python爬取百度搜索結(jié)果并保存
點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進行關(guān)注
回復(fù)“書籍”即可獲贈Python從入門到進階共10本電子書
一、前言
大家好,我是崔艷飛。眾所周知,百度上直接搜索關(guān)鍵字會出來一大堆東西,時常還會伴隨有廣告出現(xiàn),不小心就點進去了,還得花時間退出來,有些費勁。
最近群里有個小伙伴提出一個需求,需要獲取百度上關(guān)于糧食的相關(guān)講話文章標題和鏈接。正好小編最近在學(xué)習(xí)爬蟲,就想著拿這個需求來練練手。我們都知道,對Python來說,有大量可用的庫,實現(xiàn)起來并不難,動手吧。
二、項目目標
爬取百度上關(guān)鍵字為“糧食”的搜索結(jié)果,并保存,提交給客戶,用于進一步分析我國糧食政策。
三、項目準備
軟件:PyCharm
需要的庫:json, requests,etree
四、項目分析
1)如何進行關(guān)鍵詞搜索?
利用response庫,直接Get網(wǎng)址獲得搜索結(jié)果。網(wǎng)址如下:
https://www.baidu.com/s?wd=糧食2)如何獲取標題和鏈接?
利用etree對原代碼進行規(guī)范梳理后,通過Xpath定位到文章標題和href,獲取標題和文章鏈接。
3)如何保存搜索結(jié)果?
新建txt文件,對搜索結(jié)果循環(huán)寫入,保存即可。
五、項目實現(xiàn)
1、第一步導(dǎo)入需要的庫
import jsonimport requestsfrom lxml import etree
2、第二步用requests進行請求搜索
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/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)讀取保存
for i in range(10):r11 = r1[i].xpath('string(.)')r22 = r2[i].xpath('string(.)')r33 = r3[i]with open('ok.txt', 'a', encoding='utf-8') as c: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)
????
六、效果展示
1、程序運行結(jié)果,如下圖所示:

2、保存為txt的文件最終結(jié)果如下圖所示:

七、總結(jié)
本文介紹了如何利用Python對百度搜索結(jié)果進行爬取、保存,是一個小爬蟲,這也是Python好玩的地方,有大量免費的庫可用,能幫你實現(xiàn)各種需求。工作量大,學(xué)會用Python!
最后需要本文項目代碼的小伙伴,請在公眾號后臺回復(fù)“糧食”關(guān)鍵字進行獲取,如果在運行過程中有遇到任何問題,請隨時留言或者加小編好友,小編看到會幫助大家解決bug噢!
-------------------?End?-------------------
往期精彩文章推薦:
Django網(wǎng)站實戰(zhàn)——手把手帶大家制作一個經(jīng)典的網(wǎng)站
手把手教你用Pycharm連接遠程Python環(huán)境
手把手教你用Scrapy+Gerapy部署網(wǎng)絡(luò)爬蟲

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
