赞
踩
为了爬取百度搜索页的结果,我进行了多次(一下午)尝试,算是独立完成的第一段代码,总结出以下要点:
1百度搜索页面地址,每页10条,页码=(n-1)*10;
2百度搜索结果的代码,位于h3标签下;
3每条链接的文字部分,是a标签的text部分;
4百度不允许python直接爬,要加伪装头部;
代码如下:
- import requests
- from bs4 import BeautifulSoup
-
- key_words = '代码'
- #页面深度
- depth = 2
- #伪装浏览器头部
- kv = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}
- #获得每页搜索结果
- for i in range(depth):
- url = 'https://www.baidu.com/s?wd=' + key_words + '&pn=' + str(i * 10)
- print(url)
- try:
- r = requests.get(url, headers = kv)
- r.raise_for_status()
- r.encoding = r.apparent_encoding
- html = r.text
- except:
- print("Error1")
- #获得链接及非属性字符串
- soup = BeautifulSoup(html, 'html.parser')
- h3 = soup.find_all('h3')
- for i in h3:
- a = i.a
- try:
- href = a.attrs['href']
- #获取a标签中的文字
- print(a.text, '\n', href)
- except:
- print('Error2')
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。