Jasn 发表于 2020-3-9 14:47

【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:}





RS水果 发表于 2020-3-9 15:18

简直胡闹!


你不说网址 我怎么验证你的代码对不对


我要是换了网址,还得改xpath


那和我自己重写一遍有什么区别


我到底是看你代码来了还是自己写代码来了?




附件里的地址也是屏蔽掉的    白白扣我CB


我已经报警了!

zb848 发表于 2020-3-9 20:22

chuxing 发表于 2020-3-9 14:57

我只想知道这个具体地址是什么/滑稽

chinaqin 发表于 2020-3-9 15:00

不发网址,差评。。。。

Arthas-xun 发表于 2020-3-9 15:01

老哥,你这个有点危险{:1_886:}

Jasn 发表于 2020-3-9 15:02

chuxing 发表于 2020-3-9 14:57
我只想知道这个具体地址是什么/滑稽

{:1_905:}{:1_905:}{:1_905:}我这里有卖营养快线的地址你要不要

zncliving 发表于 2020-3-9 15:06

地址没有 你好毒 你好毒毒毒毒毒 {:301_992:}

运维穷屌丝 发表于 2020-3-9 15:12

没地址,真不懂啊!

ygiveupc 发表于 2020-3-9 15:15

我缺的是代码吗?是网址

chasl09 发表于 2020-3-9 15:19

哈哈哈,有群吗。最近我也在研究如何爬视频。没人交流难受
页: [1] 2 3
查看完整版本: 【python】萌新学习笔记之我有一个大胆的想法