import requests from lxml import etree import os from urllib.request import urlretrieve import sys url='https://www.huya.com/g' headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'} response=requests.get(url,headers=headers).content.decode() html=etree.HTML(response) req=html.xpath('//li[@class="g-gameCard-item"]//a//@data-gid') names=html.xpath('//li[@class="g-gameCard-item"]//a//p/text()') i=0 mylog=open('关键字大全.log',mode='a',encoding='utf-8') print(' -----------查找关键字大全-----------',file=mylog) #这里只是为了查看关键字美观而已,保存到记事本里 for re,name in zip(req,names): print('关键字:%s 查找id号:%s'%(name,re),end=' ',file=mylog) i+=1 if i==5: print('\n',file=mylog) i=0 mylog.close() name_1=input('\n请输入查找关键字:') for re,name in zip(req,names): if name_1==name: break if name_1!=name: print('没有你想查找的关键字') else: url='https://www.huya.com/g/{}#tag0'.format(re) data=requests.get(url,headers=headers).content.decode() html=etree.HTML(data) #链接 link_list=html.xpath('//a/img[@class="pic"]/@data-original') #名字 names_1_list=html.xpath('//span[@class="avatar fl"]//img/@title') # 文件名字 os.mkdir(name) for link, names_1 in zip(link_list, names_1_list): # 获取链接 link = link.split('?')[0] try: # 保存数据 urlretrieve(link, name + '/' + names_1 + '.jpg') print(names_1 + '100%') except: pass
时间: 2024-04-28 17:22:50 浏览: 111
这段代码是一个Python爬虫程序,用于从虎牙直播网站上爬取游戏直播分类下的主播头像,保存到本地文件夹中。具体实现过程如下:
1. 导入requests、lxml、os和urllib库,用于发送http请求、解析html文档、创建文件夹和下载图片。
2. 设置headers,伪装成浏览器的请求头,避免被服务器识别为爬虫。
3. 发送http请求,获取游戏直播分类下的html文档。
4. 使用xpath解析html文档,获取所有游戏id和游戏名字。
5. 将关键字和对应的id保存到本地记事本中,以便后续查看。
6. 等待用户输入要查找的关键字,根据关键字查找对应的游戏id。
7. 根据游戏id构造新的url,重新发送http请求,获取游戏主播列表的html文档。
8. 使用xpath解析html文档,获取所有主播头像的链接和主播名字。
9. 根据主播名字创建文件夹,遍历所有主播头像链接,下载头像并保存到对应的文件夹中。
需要注意的是,这段代码仅供学习和参考使用,对于未经授权的爬取行为,请勿使用。同时,爬取过程中应当遵守相关法律法规和网站的使用协议,不得侵犯他人的隐私和知识产权。
相关问题
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 re import requests from lxml import etree import numpy as np import pandas as pd from lxml import etree import numpy as np import requests headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36' } url="https://www.5iai.com/#/jobList" response = requests.get(url,headers = headers) response.encoding = 'utf8' html = response.text root = etree.HTML(html) node_list = root.xpath("//div[@class='wrap']/text()") #/ul/li/div[@class='jobInfo']/span node_list #保存为txt np.savetxt('C:/Users/11148/Desktop/daijing_list.txt',node_list,fmt='%s')
这段代码是用Python爬取了一个网站(https://www.5iai.com/#/jobList)上的数据,并将获取的数据保存到了一个txt文件中。
具体的实现过程如下:
1. 引入需要的库:re、requests、lxml、numpy、pandas
2. 设置请求头,模拟浏览器访问网站,避免被反爬虫机制封禁
3. 发送get请求,获取网页的HTML源代码,并设置编码格式为utf-8
4. 使用lxml库解析HTML源代码,获取需要的节点信息,这里使用xpath语法进行节点的定位
5. 将获取的节点信息保存到一个txt文件中,使用numpy库的savetxt函数实现
需要注意的是,这段代码中的xpath定位语句可能会因为网页结构的变化而失效,需要根据实际情况进行调整。同时,爬取网站数据也需要遵守相关法律法规和网站的使用规定,不得进行非法爬取行为。
阅读全文
相关推荐














