1、什么是爬虫?
请求网站并提取数据的自动化程序
2、爬虫基本流程
发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、Json字符串、二进制数据(如图片视频)等类型。
解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。
3、请求的内容主要有:
请求方式:get,post、请求URL、请求头、请求体
4、响应的内容主要有:
响应状态、响应头、响应体
5、实际操作
5.1、get请求百度
>>> import requests
>>> response = requests.get('http://www.baidu.com')
>>> print(response.text)
5.2、打印响应的其他内容
>>> print(response.headers)
>>> print(response.status_code)
5.3、添加请求头
6、能抓怎样的数据?
可以抓取:网页文本、图片、视频、其他
7、怎样来解析?
爬取下来的数据解析方式主要有:直接处理、Json解析、正则表达式、BeautifulSoup、PyQuery、XPath
8、为什么我抓到的和浏览器看到的不一样?
部分页面存在JavaScript渲染
9、怎样解决JavaScript渲染的问题?
第一种是分析Ajax请求,第二种是通过Selenium或WebDriver模拟浏览器渲染
10、可以怎样保存数据?
保存数据的方法:文本、关系型数据库、非关系型数据库、二进制文件