请求网站并提取数据的自动化程序
基本流程:
1.发起请求,通过HTTP库向目标站点发起请求,即发送一个request,请求可以包含额外的headers等信息,等待服务器响应
2.获取响应内容,如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据等类型
3.解析内容,得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析,可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理
4.保存数据,保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件
为什么爬虫页面数据和浏览器中展示的不一样?
因为页面有些DOM是在js执行之后渲染出来的,requests请求到的结果是后台得到的第一个请求的内容(原生的html代码),js运行之后会把原先的html完全改变。
怎样解决js渲染的问题
selenium/webdriver驱动浏览器,模拟加载网页
爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况
url管理器:对将要爬取的url和已经爬取的url数据的管理,可取出待爬取的url传送给网页下载器
网页下载器:将url指定的网页下载,存储为字符串,传给网页解析器解析
网页解析器:提取出有价值的数据,或者将指定其他网页的url补充进url管理器
简单爬虫架构,动态流程: