import requests from lxml import etree url='https://m.douban.com/time/column/213/?dt_time_source=douban-web_anonymous' headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_\ 7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5.1 Safari/605.1.15'} r=requests.get(url,headers=headers) html=etree.HTML(r.text) result=html.xpath('//div[@class="i+xqa"]/p[@class="K2fUh"]/text()') name=html.xpath('//div[@class="i+xqa"]/span[@class="0e60A"]/text()') print(name) with open('/Users/guangjiaochuanpixie/Documents/review.txt','w',encoding='utf-8') as f: for content in result: f.write(content+'---------------\n')
时间: 2023-12-21 12:05:42 浏览: 330
这段代码是使用Python的requests和lxml库来爬取豆瓣时光网站上的文章内容和作者名字,并将结果保存到本地文件中。首先,通过发送GET请求获取网页内容,然后使用lxml库的etree模块对网页进行解析。使用xpath语法从解析后的HTML中提取文章内容和作者名字,并将结果打印输出。最后,使用文件操作将结果写入到指定文件中。
需要注意的是,代码中的url变量指定了要爬取的网页链接,headers变量指定了请求头,r变量存储了请求返回的内容,html变量存储了解析后的HTML对象。result变量存储了提取的文章内容,name变量存储了提取的作者名字。最后,使用with语句打开文件,并循环写入结果到文件中。
请注意修改代码中的保存文件路径和文件名,以及根据需要适当修改代码。
相关问题
import requests from lxml import etree url="https://www.80142.com/txt/82776.html" html=requests.get(url) print(html)出现not get
您的代码有语法错误。正确的代码应该是:
```python
import requests
from lxml import etree
url = "https://www.80142.com/txt/82776.html"
html = requests.get(url)
print(html)
```
如果您仍然遇到 `not get` 错误,请检查您的网络连接或者网站是否可以正常访问。您可以尝试在浏览器中打开该网站,看看是否可以访问。
解决一下以下代码报错的import requests from lxml import etree url = 'https://www.shanghairanking.cn/institution' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } res = requests.get(url=url,headers=headers) print(res.status_code) html = etree.HTML(res.text) lis = html.xpath("//*[@id="__layout"]/div/div[2]/div[2]/div[1]") print(len(lis))
这段代码有一个小错误,就是在xpath的语句中双引号没有转义,需要改成单引号。修改后的代码如下:
```python
import requests
from lxml import etree
url = 'https://www.shanghairanking.cn/institution'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
res = requests.get(url=url, headers=headers)
print(res.status_code)
html = etree.HTML(res.text)
lis = html.xpath('//*[@id="__layout"]/div/div[2]/div[2]/div[1]')
print(len(lis))
```
这样就可以正确运行了,输出页面中指定元素的数量。
阅读全文