import requests from lxml import etree import csv headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } f = open('益智地址.csv', mode='w', encoding='utf-8-sig', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '游戏地址']) csv_writer.writeheader() for i in range(1,123): if i == 1: url = 'https://www.4399.com/flash_fl/5_1.htm' html = requests.get(url,headers=headers).content doc = etree.HTML(html) url_1 = doc.xpath('//*[@class="list affix cf"]/li/a/@href') for i in range(len(name)): dit = {} new_url = 'https://www.4399.com' + url_1[i] for id in new_url: dit['游戏地址'] = id csv_writer.writerow(dit) else: url = 'https://www.4399.com/flash_fl/more_5_{}.htm'.format(str(i)) html = requests.get(url,headers=headers).content doc = etree.HTML(html) url_1 = doc.xpath('//*[@class="list affix cf"]/li/a/@href') for i in range(len(name)): dit = {} new_url = 'https://www.4399.com' + url_1[i] for id in new_url: dit['游戏地址'] = id csv_writer.writerow(dit) print(id)
时间: 2024-02-15 14:28:24 浏览: 98
这段代码是用来爬取4399网站上益智游戏的地址,并将其保存为csv文件的。具体来说,代码使用了requests库获取网页内容,使用lxml库解析HTML代码,然后使用csv库将获取到的数据保存为csv文件。其中,代码使用了循环来遍历所有分页,并且使用了字典来保存每个游戏的地址。不过,需要注意的是,在第一个循环中,使用了一个变量name来作为循环遍历的范围,但是这个变量并没有在代码中定义,可能会导致错误。
相关问题
import requests from lxml import etree import os headers = { 'user-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0' } url = 'https://wallhaven.cc/search?q=id:2278&sorting=random&ref=fp' page_text = requests.get(url=url, headers=headers).text selector = etree.HTML(page_text) # 将网站中的html源码数据加载到tree里 # li_list = selector.xpath('//section[@class="thumb-listing-page"]/ul/li//@src') # 获取源码对应的图片列表 li_list = selector.xpath("//*[@id='thumbs']/section/ul/li//@src") print(li_list)
这段代码是一个简单的爬虫程序,使用requests库获取指定网站的HTML源码,然后使用lxml库的etree模块解析HTML源码,获取指定元素的值。
具体来说,这段代码的功能是:
1. 构造请求头headers,模拟浏览器访问;
2. 指定目标url,使用requests库发送GET请求获取页面的HTML源码;
3. 使用etree.HTML方法将HTML源码转换为Element对象;
4. 使用xpath方法获取id为2278的图片信息,将URL存储在li_list中;
5. 打印li_list,输出结果。
需要注意的是,这段代码并没有对爬取的数据进行处理或存储,只是将获取到的数据输出到控制台。如果您想要将数据存储到本地或进行其他处理,需要在代码中添加相应的操作。同时,爬取网站的数据可能涉及到法律问题,请确保您的操作符合相关法律法规。
import requests from lxml import etree headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57' } url='https://pic.netbian.com/' page_text= requests.get(url=url,headers=headers).text tree = etree.HTML(page_text) li_list=tree.xpath('//div[@class="slist"]/ul/li') for li in li_list: pic='https://pic.netbian.com'+li.xpath('./a/img/@src')[0] name=li.xpath('./a/img@alt')[0]+'.jpg' print(pic,name)
这段代码是一个Python程序,它使用requests和lxml库来从网站https://pic.netbian.com/获取数据,并使用XPath从HTML页面中提取图像的URL和名称。这里的问题在于,XPath表达式'.//a/img@alt'中缺少'/',正确的表达式应该是'./a/img/@alt'。这个错误可能导致名称提取失败。
阅读全文