十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
了解正則表達(dá)式如何在python中爬取問答?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的青銅峽網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
爬蟲思路
1、確定爬取的url路徑,headers參數(shù)
2、發(fā)送請(qǐng)求 -- requests 模擬瀏覽器發(fā)送請(qǐng)求,獲取響應(yīng)數(shù)據(jù)
3、解析數(shù)據(jù) -- re模塊:提供全部的正則表達(dá)式功能
4、保存數(shù)據(jù) -- 保存json格式的數(shù)據(jù)
完整步驟:
確定爬取的url路徑,headers參數(shù)

base_url = 'https://www.guokr.com/ask/highlight/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}發(fā)送請(qǐng)求 -- requests 模擬瀏覽器發(fā)送請(qǐng)求,獲取響應(yīng)數(shù)據(jù)
response = requests.get(base_url, headers=headers) data = response.text
解析數(shù)據(jù) -- re模塊:提供全部的正則表達(dá)式功能
>印度人把男人的生殖器叫林伽,把女人的生殖器叫瑜尼,林伽和瑜尼的交合,便是瑜伽。這是真還是假的
編譯正則表達(dá)式 預(yù)編譯的代碼對(duì)象比直接使用字符串要快,因?yàn)榻忉屍髟趫?zhí)行字符串形式的代碼前都必須把字符串編譯成代碼對(duì)象
pattern = re.compile('(.*?)
', re.S)
pattern_list = pattern.findall(data) # -->list
# json [{[]}]{}
# 構(gòu)建json數(shù)據(jù)格式
data_list = []
for i in pattern_list:
data_dict = {}
data_dict['title'] = i[1]
data_dict['href'] = i[0]
data_list.append(data_dict)保存json格式的文件
with open("guoke01.json", 'w', encoding='utf-8') as f:
f.write(json_data_list)構(gòu)建一個(gè)循環(huán)爬取
for page in range(1, 101):
print("====正在爬取第{}業(yè)數(shù)據(jù)====\n".format(page))優(yōu)化代碼,把page傳遞進(jìn)去
base_url = 'https://www.guokr.com/ask/highlight/?page={}'.format(str(page))把列表添加到for循環(huán)上面去
data_list = []
最后運(yùn)行代碼。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)正則表達(dá)式如何在python中爬取問答大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。