一、正则表达式
导入方法:
import re
二、BeautifulSoup
BeautifulSoup库是一个非常流行的Python模块,通过该库可以轻松解析Requests库请求的网页,并把网页源代码解析为Soup文档。
导入方法:
from bs4 import BeautifulSoup
使用方法
import requests
from bs4 import BeautifulSoup
# 请求头,模仿浏览器登录
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
url = 'https://wh.lianjia.com/ershoufang/'
# 如果成功,Status Code为200
webdata = requests.get(url,headers=headers)
# 对返回的结果进行解析
# 解析方法一般用 lxml
soup = BeautifulSoup(webdata.text,'lxml')
# 打印解析后的网页
print(soup.prettify())
三、lxml
总结
优缺点
- 正则、lxml方法较快,BeautifulSoup方法较慢
- BeautifulSoup、lxml方法使用较简单,正则使用较难
- 正则是内置模块,BeautifulSoup是纯python,安装较简单,lxml安装相对困难
使用
- 如果爬虫瓶颈是下载网页,而不是抽取数据,则使用较慢的BeautifulSoup也不成问题。
- 如果只需抓取少量数据,并且想要避免额外依赖的话,正则表达式更加合适。
- 通常情况下,lxml是抓取数据的最好选择,因为该方法既快速又健壮,而正则和BeautifulSoup只在某些特定场景下有用。