爬取百度搜索结果Python爬虫相关的前10个标题和链接
时间: 2024-09-17 20:04:44 浏览: 71
【python爬虫源代码】用python爬取百度搜索的搜索结果!
5星 · 资源好评率100%
在Python中爬取百度搜索结果的前10个标题和链接,你需要使用`requests`库来发送HTTP请求,然后结合`BeautifulSoup`库或`lxml`库来解析返回的HTML。这里是一个基本的示例,不过请注意,百度对爬虫有严格的限制,并且频繁的爬取可能会导致IP被封禁,因此在实际操作时,建议使用模拟用户行为和设置延时。
首先安装所需的库,如果还没安装可以使用以下命令:
```bash
pip install requests beautifulsoup4
```
然后编写代码:
```python
import requests
from bs4 import BeautifulSoup
# 百度搜索查询词
query = "Python爬虫"
# 构建搜索引擎URL
base_url = "http://www.baidu.com/s"
search_url = base_url + "?wd=" + query
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'
}
def get_search_results():
response = requests.get(search_url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# 在这里找到前10个搜索结果的标题和链接
for i in range(10):
result = soup.find('li', class_='cse_item') # 需要调整类名,因为百度搜索结果的结构可能会改变
if result:
title = result.find('a')['title']
link = 'http://www.baidu.com' + result.find('a')['href'] # 同样需要检查链接是否有效
print(f"排名{i+1}: 标题 - {title}, 链接 - {link}")
else:
break # 如果找不到结果了,跳出循环
get_search_results()
```
注意:这个例子假设HTML结构不变,实际上百度搜索结果的结构可能会有所变化,因此可能需要根据实际网页结构调整选择器。
阅读全文