介绍下 Python 用 Beautiful Soup 周期性爬取 xxx 网站获取新闻流;
1. 开发环境
Python: 3.6.3
BeautifulSoup: 4.2.0 , 是一个可以从HTML或XML文件中提取数据的Python库* ( BeautifulSoup 的中文官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ )
2. 代码介绍
实现主要分为三个模块:
1. 计时 / second cnt
因为是周期性爬取,所以需要计时器来控制;
2. 设置代理 / set proxy
为了应对网站的反爬虫机制,需要切换代理;
3. 爬虫 / web spider
利用 requests 请求网站内容,然后 beautifulsoup 提取出所需信息;
利用 requests.get() 向服务器发送请求 >>> 拿到 html 内容 >>> 交由 beautifulsoup 用来解析提取数据;
先看一个 requests 和 beautifulsoup 拿数据的简单例子:
requests 发送请求给网站,然后 get 到返回的 html,然后再转换为 beautifulsoup 的对象;
( headers 和 proxies 是可选项 / optional )
1 from bs4 import BeautifulSoup 2 import requests 3 html = "https://www.xxx.com" 4 headers = { 5 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' 6 } 7 proxies = "114.231.xx.xx:xxxx" 8 9 resp = requests.get(html, headers=headers, proxies=proxies) 10 resp.encoding = 'utf-8' 11 12 bsObj = BeautifulSoup(resp.content, "lxml")