Python抓取百度查询结果的方法
在Python中使用第三方库BeautifulSoup和requests可以非常方便地实现对百度查询结果的抓取。
步骤一:获取查询结果的网页源代码
使用requests
库发起GET请求获取查询结果的网页源代码。
import requests
def get_page_source(keyword):
url = f"https://www.baidu.com/s?wd={keyword}"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers, timeout=10)
response.encoding = "utf-8"
return response.text
其中keyword
是查询的关键词,url
根据关键词拼装出百度查询结果的网址,headers
则是为了模拟浏览器发送请求的消息头,timeout
则是请求超时时间。
步骤二:解析网页源代码
使用BeautifulSoup
库解析网页源代码,获取需要的信息。
from bs4 import BeautifulSoup
def parse_page_source(page_source):
bs = BeautifulSoup(page_source, "html.parser")
results = bs.find_all("div", class_="result c-container ")
search_results = []
for result in results:
title = result.find("h3").text
link = result.find("a").get('href')
summary = result.find("div", class_="c-abstract").text
search_results.append({'title': title, 'link': link, 'summary': summary})
return search_results
首先使用BeautifulSoup
将网页源代码解析为BeautifulSoup
的对象bs
,然后根据页面结构和相关类名进行元素查找,提取出标题、链接和摘要等信息,并将这些信息封装为一个包含这些信息的字典,最后将所有的字典放到一个列表中返回。
示例一:查询Python
keyword = "Python"
page_sourc = get_page_source(keyword)
results = parse_page_source(page_sourc)
for result in results:
print(result['title'])
print(result['link'])
print(result['summary'])
print()
示例二:查询人工智能
keyword = "人工智能"
page_sourc = get_page_source(keyword)
results = parse_page_source(page_sourc)
for result in results:
print(result['title'])
print(result['link'])
print(result['summary'])
print()
以上两个示例分别演示了Python对关键词“Python”和“人工智能”的百度查询结果的抓取和输出。其中,get_page_source()
函数用于获取查询结果的网页源代码,parse_page_source()
函数则用于解析网页源代码并提取有用的信息。最后,通过for
循环遍历所有搜索结果的字典,打印出字典中的标题、链接和摘要等信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python抓取百度查询结果的方法 - Python技术站