【python】萌新学习笔记之我有一个大胆的想法
本帖最后由 Jasn 于 2020-3-9 14:54 编辑最近在学习python的一些课程,在论坛上看了很多帖子(其实也不是很多),{:301_1004:}
其中主要是看的学习视频 Python爬虫+办公自动化+好玩DIY(更新到第10章)https://www.52pojie.cn/thread-1124349-1-1.html
昨天开始正式实操,首先当然是下载安装软件 ,学习的@wushaominkk 大大的【Python】萌新跟我来入门Python爬虫https://www.52pojie.cn/thread-739688-1-1.html
可能是因为是win10系统,Python3.8和PythonCharm安装完成后的环境配置异常艰辛,使用cmd下用pip安装各种库都不成功,不知道是网络还是什么问题,百度了好多方法,
最后通过更换安装源pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple/ 安装成功的,不知道大家有没有遇到这个问题。
下面进入正题,
昨天看了@zb848大大的帖子【原创源码】【python】爬虫小白教程之回车桌面图片下载 https://www.52pojie.cn/thread-1111462-1-1.html
感觉通俗易懂,加上这两天看的学习视频大概能看到里面的代码,这让我热血澎湃,于是我产生了一个大胆的想法 {:301_995:}
爬取 某某bus(你应该懂的,不懂也别问,问就是违规) 的高清图片
流程基本就是上面的大大教程里面的方法,通过F12查看源代码,然后用小箭头选取需要的图片找到图片的地址,唯一的区别就是这个高清图的地址就在里面,可以直接找到,不需要替换那一步
在此基础上我还加了一个for循环,目的是教程后面留的作业 多级页面爬取,调试的过程中还是出现过许多错误,需要细心一点
下面是代码
import os
import requests
from lxml import etree
url = "https://www.xxxxbus.xxx/" #具体地址就不说了
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"}
response = requests.get(url, headers=headers)# 获取网页
html_str = response.content.decode()# 将页面内容转换成字符串
html = etree.HTML(html_str)# 构造了一个XPath解析对象并对HTML文本进行自动修正
url_list = html.xpath("//div[@class='row']/div[@id='waterfall']/div/div/a/@href")
# print(url_list) #获取网址列表
for html_list in url_list:
print(html_list)
response = requests.get(html_list, headers=headers)# 重复获取网页的几个步骤
html_str = response.content.decode()# 将页面内容转换成字符串
html = etree.HTML(html_str)# 构造了一个XPath解析对象并对HTML文本进行自动修正
img_list = html.xpath("//div[@id='sample-waterfall']/a/@href")# 创建图片地址列表,获取图片地址
# print(img_list) #到这里可打印一下看看获取到的图片地址列表是否正确,最后可注释掉这行
img_name = html.xpath("//div[@id='sample-waterfall']/a/div/img/@title").replace(" ", "")
# print(img_name) #到这里可打印一下看看获取到的图片名称是否正确,最后可注释掉这行
try:
os.mkdir("{}".format(img_name))# 在程序目录下创建一个以“图片标题”命名的文件夹用来保存这一组图片
except:
pass
for url in img_list:
filename = url.split("/")[-1]# 获取图片文件名,split是删除网址中/号前所有字符包括/
# print(filename) #可打印一下文件名看是否获取成功,最后可注释掉这行
f = requests.get(url, headers=headers)# 获取网页地址
with open("./{0}/{1}".format(img_name, filename), "wb") as code:# 下载文件
code.write(f.content)
print("【{}】高清图片下载完成。".format(filename))
print("全部图片下载完成,保存在程序目录下文件夹下")
基本上都是用的@zb848 大大的代码(如有侵权请联系我删掉),具体内容做了适应网址的修改,
最后上一张效果图吧,当然不是你们想的那种效果图 {:301_978:}
简直胡闹!
你不说网址 我怎么验证你的代码对不对
我要是换了网址,还得改xpath
那和我自己重写一遍有什么区别
我到底是看你代码来了还是自己写代码来了?
附件里的地址也是屏蔽掉的 白白扣我CB
我已经报警了! 我只想知道这个具体地址是什么/滑稽 不发网址,差评。。。。 老哥,你这个有点危险{:1_886:} chuxing 发表于 2020-3-9 14:57
我只想知道这个具体地址是什么/滑稽
{:1_905:}{:1_905:}{:1_905:}我这里有卖营养快线的地址你要不要 地址没有 你好毒 你好毒毒毒毒毒 {:301_992:} 没地址,真不懂啊! 我缺的是代码吗?是网址 哈哈哈,有群吗。最近我也在研究如何爬视频。没人交流难受