python 爬取簡單的百度搜索結果

在學長的指導下自學了requests包,lxml包和selenium包。按要求寫出了一個簡單的爬蟲

爬取百度搜索結果

主要還要藉助xpath helper谷歌瀏覽器的插件來操作更容易找到需要查找信息的xpath位置

還要首先了解一下百度搜索請求的參數 lm默認爲0,天數限制,但是好像只有1有用。

默認每頁10條信息,rn

pn是頁碼

from lxml import etree
import re
import requests
import string
import json
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
}
response = requests.get('https://www.baidu.com/s?wd=騰訊視頻優惠&lm=1',headers=headers)
r = response.text
html = etree.HTML(r,etree.HTMLParser())
r1 = html.xpath('//h3')
r2 = html.xpath('//*[@class="c-abstract"]')
r3 = html.xpath('//a[@class="c-showurl"]')
for i in range(10) :
    r11 = r1[i].xpath('string(.)')
    r22 = r2[i].xpath('string(.)')
    r33 = r3[i].xpath('string(.)')
    # with open('test.txt', 'a', encoding='utf-8') as f:
    #     f.write(json.dumps(r11,ensure_ascii=False) + '\n')
    #     f.write(json.dumps(r22, ensure_ascii=False) + '\n')
    #     f.write(json.dumps(r33, ensure_ascii=False) + '\n')
    print(r11,end='\n')
    print(r22,end='\n')
    print(r33)
    print()

URL如上的話,只能爬出一點URL,不是完整的URL,要改動一下

//a[@class="c-showurl"]後面加上/@href

下面的xpath.('string(.)')就不需要了

只是爬取了搜索的信息標題,信息描述和信息源地址

用xpath獲取指定標籤下的所有text

原博地址https://blog.csdn.net/legendary_Dragon/article/details/81412096

爬取結果如下

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章