赞
踩
具体内容查看博客:https://blog.csdn.net/weixin_57662182/article/details/127189108?spm=1001.2014.3001.5502
因为这里有很多页图片,需要查看每一页的url是如何编码的
发现他们的url都是
url = 'https:xxxxxxxx'+str(page)+'.html'
所以我们写一个def create_request(page)方法,用来设置要爬取的网页url代码如下:
def create_request(page):
url = 'https:xxxxxxxxxxx'+str(page)+'.html'
# 反爬手段
headers = {
'User-Agent': 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
}
# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)
return request
其中headers的值设置是用来反爬虫的,它是从网页上获取的:
如果安装好之后,ctrl+shift+x即可出现一个小黑框,然后进行如下操作即可查看自己想要的数据:
解析网站里面的图片地址:
解析网站的图片名字:
需要的依赖:
import urllib.request
import urllib.parse
from lxml import etree
设置url的def create_request(page)函数
def create_request(page):
url = 'https:xxxxxxxxxxxxx'+str(page)+'.html'
# 反爬手段
headers = {
'User-Agent': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)
return request
接下来我们写一个def get_content(request)函数用来获取网站的内容,这里要注意可能网页的编码是gb2312也可能是utf-8,我们只需要打印content查看一下页面的编码是那个即可。
def get_content(request):
response = urllib.request.urlopen(request)
content = response.read().decode('gb2312')#可能是utf-8,输出content即可知道
return content
获取完网站的数据之后,我们需要解析需要的数据,比如图片、标题之类的,这里我们只获取图片和图片信息:
tree.xpath里面的东西就是上面xpath的解析代码:
def down_load(content):
tree=etree.HTML(content)
name_list=tree.xpath('//div[@class="g-gxlist-box g-box-1200 m-margin15 clearfix"]//a/img/@alt')
src_list=tree.xpath('//div[@class="g-gxlist-box g-box-1200 m-margin15 clearfix"]//a/img/@src')# 可能会出现懒加载
print(len(name_list),len(src_list))
for i in range(len(name_list)):
name=name_list[i]
src=src_list[i]
urllib.request.urlretrieve(url=src,filename='./img/'+name+'.jpg')
print(name,src)
最后写一个主函数调用他们:
if __name__ == '__main__':
start_page=int(input('请输入起始页码'))
end_page=int(input('请输入结束页面'))
for page in range(start_page,end_page+1):
requests=create_request(page)
# 获取网页的源码
content=get_content(requests)
# # 数据下载到本地
down_load(content)
最后记得创建一个img的文件夹
下载的图片:
谢谢你这么优秀,还关注我。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。