Python 爬虫入门:BeautifulSoup 和 Selenium 抓取网页数据
爬虫是Python最经典的应用之一。BeautifulSoup解析静态HTML,Selenium控制浏览器抓取动态页面。
静态页面爬虫
requests.get()获取页面,BeautifulSoup(r.text, 'html.parser')解析HTML。select()方法用CSS选择器提取数据,比正则更可靠。
动态页面爬虫
Selenium控制Chrome/Firefox浏览器,可以等待JavaScript渲染完成。WebDriverWait替代time.sleep()等待元素加载,更高效可靠。
robots.txt 遵守
urllib.robotparser.RobotFileParser读取robots.txt规则,can_fetch()检查是否允许爬取。两次请求间隔至少1秒。
反爬应对
轮换User-Agent和代理IP降低被封风险。设置合理的请求间隔。尽量找JSON API替代HTML解析。
运行效果
BeautifulSoup适合新闻、小说等静态内容。Selenium适合需要登录或JavaScript渲染的页面。
常见问题
Q1: 爬虫被封了怎么办?降低请求频率,轮换代理IP,使用代理池服务。
Q2: BeautifulSoup用哪个解析器?html.parser内置,lxml速度快,html5lib最接近浏览器。
延伸阅读
- Python requests进阶
- Python正则表达式
- Python数据存储
---
作者:小马 | 绍大技术网 shaoda.net