Python网页数据抓取实战

分析要抓取的url的格式,限定抓取范围。分析要抓取的数据的格式,本实例中就要分析标题和连接这两个数据所在的标签的格式。分析要抓取的页面编码的格式,在网页解析器部分,要指定网页编码,然后才能进行正确的解析。

1. 抓取策略

Python网页数据抓取实战
  • 确定目标:确定抓取哪个网站的哪些页面的哪部分数据。本实例抓取百度首页a标签内容。
  • 分析目标:分析要抓取的url的格式,限定抓取范围。分析要抓取的数据的格式,本实例中就要分析标题和连接这两个数据所在的标签的格式。分析要抓取的页面编码的格式,在网页解析器部分,要指定网页编码,然后才能进行正确的解析。
  • 编写代码:在网页解析器部分,要使用到分析目标得到的结果。
  • 执行爬虫:进行数据抓取。

2. 示例代码

# 使用Python requests,bs4,lxml组件抓取网页内容
# pip3 install requests
# pip3 install bs4
# pip3 install lxml
# 程序运行 python -u ***.py 或 ./***.py
# Author tanjie(John)
# Time   2021-05-23
import requests
import bs4
import lxml.html

# 构造headers
headers = {
   "User-Agent":
   "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
}
url = 'https://www.baidu.com/'

r = requests.get(url, headers)
#查看响应状态码
status_code = r.status_code
print(status_code)
content = bs4.BeautifulSoup(r.content.decode("utf-8"))
print(content)
# 通过ID查找元素
# element = content.find_all(id='su')
# print(element[0]['value'])

# 通过标签去找
element = content.find_all('a')
print(element)
for a in element:
   a_href = a['href']
   print(a_href)

# 获取a标签里面的内容以及属性内容
html = requests.get(url).content
selector = lxml.html.fromstring(html)
res = selector.xpath("///a/text()")
res1 = selector.xpath("///a/@href")
for i, s in enumerate(res):
   print(res1[i])
   print(s)

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/26287.html

发表评论

登录后才能评论