import codecs,csv headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44', } url='https://www.mafengwo.cn/hotel/10183/?sFrom=mdd' res=requests.get(url,headers=headers) html=etree.HTML(res.text) total=html.xpath('//ul[@class="clearfix"]/li') f=open('住宿攻略1.csv','w+',newline='',encoding='utf-8-sig') filename=['name','num'] writer=csv.DictWriter(f,filename) writer.writeheader() for item in total: spot={} spot['name']=item.xpath('.//strong/text()')[0] spot['num']=item.xpath('.//span/text()')[0] print(spot) writer.writerow(spot) 逐行标注这段代码
时间: 2023-06-18 07:07:06 浏览: 108
```
import codecs,csv # 导入codecs和csv模块
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44',
} # 设置请求头headers
url='https://www.mafengwo.cn/hotel/10183/?sFrom=mdd' # 定义目标网址
res=requests.get(url,headers=headers) # 发送get请求,获取响应对象
html=etree.HTML(res.text) # 将响应对象转换为HTML文档
total=html.xpath('//ul[@class="clearfix"]/li') # 使用XPath定位到需要爬取的数据所在的节点
f=open('住宿攻略1.csv','w+',newline='',encoding='utf-8-sig') # 打开文件,准备写入数据
filename=['name','num'] # 定义文件头
writer=csv.DictWriter(f,filename) # 创建DictWriter对象,用于写入字典形式的数据
writer.writeheader() # 写入文件头
for item in total: # 循环遍历每个节点
spot={} # 定义空字典,用于存储每个节点的数据
spot['name']=item.xpath('.//strong/text()')[0] # 使用XPath定位到需要爬取的数据,将其存储到字典中
spot['num']=item.xpath('.//span/text()')[0]
print(spot) # 输出每个节点的数据
writer.writerow(spot) # 将每个节点的数据写入文件中
```
注:本代码需要导入 requests、csv 和 lxml.etree 模块。
阅读全文