Requests-HTML是一个基于Python的库,它是在Requests库的基础上构建的,并使用了PyQuery库来实现HTML解析。它提供了一个简单的方法来解析HTML文档并提取信息。
以下是使用Requests-HTML的步骤:
1. 安装Requests-HTML库:`pip install requests-html`
2. 导入RequestsHTML库:`from requests_html import HTMLSession`
3. 创建一个HTMLSession对象:`session = HTMLSession()`
4. 使用`get()`方法获取HTML文档:
```
r = session.get('https://www.example.com')
html_string = r.html.html
```
上面的代码将获取https://www.example.com的HTML文档,并将其存储在`html_string`变量中。
5. 使用`find()`、`find_all()`方法查找元素:
```
divs = r.html.find('div')
for div in divs:
print(div.text)
```
上面的代码将打印HTML文档中所有的`<div>`标签的文本内容。
`find()`方法只返回第一个匹配的元素,而`find_all()`方法返回所有匹配的元素。
6. 使用CSS选择器或XPath表达式:
Requests-HTML支持使用CSS选择器或XPath表达式来查找元素,例如:
```
element = r.html.find('.class-name', first=True)
```
上面的代码将查找`class`属性为`class-name`的第一个元素。
7. 使用`search()`方法查找文本:
如果要查找HTML文档中的特定子字符串或正则表达式,可以使用`search()`方法:
```
if r.html.search('example.com'):
print('Found example.com in the HTML')
```
上面的代码将查找HTML文档中是否包含`example.com`。
8. 执行JavaScript:
Requests-HTML还允许执行JavaScript代码并获取执行后的HTML文档。例如:
```
r = session.get('https://www.example.com')
r.html.render()
print(r.html.html)
```