数据获取与预处理
爬虫:让机器模拟人浏览网页,获取网页中我们要获取的信息
1.爬虫软件:
- 集搜客Gooseeker
- 八爪鱼
- 网络矿工
- 火车头
- 神箭手平台
- ...
2.爬虫程序
- request:让HTTP服务人类
- 伪装自己所需的参数
- 发送http请求:get请求 req=requests.get(url,headers,param)
post请求 req=requests.post(url,headers,data)
- 获取响应:若返回的是文本数据(html)用req.text;若返回的是json数据,用req.json
2.BeautifulSoup:解析网页,从HTML或XML文件中提取数据的python库
①将网页文本创建为BeautifulSoup实例:soup=BeautifulSoup(html):将复杂HTML文档转换成一个复杂的树形结构
②根据不同的规则来获取网页元素:a=soup.find("a",{"class" : "mooc"}) #找到第一个属性class为mooc的a标签
3.Selenium:模拟浏览器,自动化测试工具,可用于完成几乎所有的浏览器操作,比如点击、输入等
有时候一些网页中包含一些JavaScript动态加载的元素,这些内容是用户在浏览器打开网页的时候才会执行的,若直接使用requests去请求,是无法完成js的这些动作的,也无法获取我们所要的内容,所以需要模拟浏览器的动作
browser=webdriver.Chrome(); #打开一个chrome浏览器
browser.get('http://www.baidu.com/'); #在打开的浏览器中请求
4.Scrapy:爬取网站数据,提取结构性数据而编写的应用框架