requests beautifulsoup 正则表达式
时间: 2023-08-24 13:09:54 浏览: 121
requests和beautifulsoup都是Python中常用的网络爬虫库。正则表达式则是一种用于匹配、搜索、替换字符串的强大工具。这三者可以结合使用,以实现更加高效、灵活的网络爬取任务。
在requests中,可以使用正则表达式来提取页面中的特定信息。例如,假设我们要获取某个网站中所有图片的链接,可以使用requests发送请求,并使用正则表达式匹配页面中所有img标签的src属性:
```
import requests
import re
url = 'https://www.example.com'
response = requests.get(url)
pattern = re.compile('<img.*?src="(.*?)".*?>')
img_urls = pattern.findall(response.text)
```
在上述代码中,我们使用了re.compile()函数将正则表达式编译成一个正则对象,然后使用findall()函数在页面中查找所有匹配的字符串。
而在beautifulsoup中,可以使用正则表达式来进行更加复杂的页面解析。例如,假设我们要获取某个网站中所有包含class属性为"article"的div标签的内容,可以使用beautifulsoup提供的find_all()函数,并结合正则表达式进行筛选:
```
from bs4 import BeautifulSoup
import requests
import re
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
pattern = re.compile('^article$')
articles = soup.find_all('div', {'class': pattern})
```
在上述代码中,我们使用re.compile()函数将正则表达式编译成一个正则对象,然后将其作为find_all()函数的参数,用于筛选class属性为"article"的div标签。
阅读全文