1. 抓取策略


  • 确定目标:确定抓取哪个网站的哪些页面的哪部分数据。本实例抓取百度首页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 (11; 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(urlheaders)
#查看响应状态码
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 is in enumerate(res):
   print(res1[i])
   print(s)

点赞(1)
立即
投稿
发表
评论
返回
顶部
{__SCRIPT__}