import requests from lxml import etree url='https://www.bilibili.com/video/BV1mF411R7A3/?spm_id_from=333.1007.tianma.1-2-2.clic\ k&vd_source=fc4e29fa3f37225d514b91f0ce9df8a0' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36\ (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56'} r=requests.get(url,headers=headers) html=etree.HTML(r.text) result=html.xpath('//span[@class="reply-content"]/text()') with open('bilibili.txt','wb') as f: f.write(result)
时间: 2024-04-19 21:30:14 浏览: 242
这段代码的作用是使用 `requests` 库发送一个 GET 请求,获取指定 URL 的网页内容,并使用 `lxml` 库解析网页内容。然后,从解析后的 HTML 中提取出所有 class 为 "reply-content" 的 span 元素,并将其文本内容写入名为 "bilibili.txt" 的文件中。
然而,这段代码存在一些问题:
1. `result` 变量是一个包含文本内容的列表,无法直接写入文件。你需要将列表中的文本内容转换为字符串,然后再写入文件。
2. 打开文件时使用了 `'wb'` 模式,这是二进制写入模式。但我们需要将文本内容写入文件,应该使用 `'w'` 模式。
修复后的代码如下:
```python
import requests
from lxml import etree
url = 'https://www.bilibili.com/video/BV1mF411R7A3/?spm_id_from=333.1007.tianma.1-2-2.click&vd_source=fc4e29fa3f37225d514b91f0ce9df8a0'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.56'
}
r = requests.get(url, headers=headers)
html = etree.HTML(r.text)
result = html.xpath('//span[@class="reply-content"]/text()')
with open('bilibili.txt', 'w', encoding='utf-8') as f:
for content in result:
f.write(content + '\n')
```
修复后的代码会将提取到的文本内容逐行写入文件,并使用 UTF-8 编码保存。
阅读全文