这篇网络爬虫简介,主要介绍一下什么是网络爬虫,不同的网页之间有什么区别,又该针对性的如何操作?
预计学习15分钟。
1.什么是网络爬虫?
网络爬虫:自动爬取网页的内容。
2.网页有哪些类型?
①静态网页:在页面初始加载时,就已经完成了数据的请求,因此通过页面的捕捉,就可以获取整个页面的内容;②动态加载的网页:在页面初始加载时,会先获取一些框架数据,之后通过用户的点击(加载更多等操作),或直接调用js来完成主体数据的加载,这类网址在访问时,需要注意主体内容的加载会有一点延迟)
3.不同类型页面的爬取
①静态页面爬取简单,可以获取整个html文本内容,然后使用BeautifulSoup
解析。
import requests from bs4 import BeautifulSoup response=requests.get("http://www.ccgp-henan.gov.cn/henan/list2?pageNo=1&pageSize=16&gglx=2&bz=0",timeout=10) html_content=response.text soup = BeautifulSoup(html_content, 'html.parser') print(soup.text)然而目前大部分网页都是动态加载数据。
②动态页面爬取。有两种思路,1)通过开发者工具(F12),分析请求的网络地址,以此找到请求主体数据的api(url)、请求方式(get/post)、请求头信息,然后模拟请求,获取的数据可使用json解析,这类示例可以搜慕课爬取。2)可以直接使用模拟浏览器的工具(如selenium)完成数据的爬取(例子下节课讲)。
4.总结
网页的爬取,一定具体问题具体分析。有很多网上提供的爬取案例可能已经不能在正常使用,这可能因为网站已经做了更多的反爬机制,或者回收了api,不要着急,没事多试试。
课后练习
- 找几个网页,分析网页的特点,然后选择使用requests、selenium、Scrapy来尝试爬取。并切身体会它们之间的不同。