求大佬解释Python程序?

求大佬告知每一句的作用,纯小白,谢谢

你的代码中:

i.get('src')得到的J 标签中'src'的属性值,我刚才看了一下,并不是每个i表示的标签里的src属性值都是可用的,以下是我按你的代码,得到的每个i.get('src')的值:

从图片中可以看到,只有一部分的字符串是图片链接,也就是说并不是每个标签中的src属性的值都是图片链接,所以如果你想要不报错,需要把i.get('src')进行一下判断,如果是真正的图片链接才下载,否则跳过,这样就不会报错了

*.图片要是看不清的话,不要点开大图,然后右键复制图片链接地址,放到地址栏中打开就可看高清图了

下面是我根据你的代码改过的,你可以试一下,有问题追问:

------------------------End------------------------

import requests

from bs4 import BeautifulSoup

import urllib.request

import re

def GetImg():

    response = requests.get('http://desk.zol.com.cn/bizhi/8376_103851_2.html')

    html = response.text

    soup = BeautifulSoup(html, 'html.parser')

    picture = soup.find_all('img')

    list = []

    for i in picture:

       img1 = i.get('src')

       links = re.findall(re.compile('http.*.jpg$'),str(img1))

       if len(links) != 0:

           list.append(img1)

    for i in range(len(list)):

        urllib.request.urlretrieve(list[i],'%d.jpg'%i)

        print("已下载%d/%d张图片"%(i,len(list)))

GetImg()

------------------------End------------------------

追问

谢谢大佬,可以帮我把每一句标上注释吗😓麻烦就算了

追答

可以,稍等

追问

谢谢了大佬

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-09
import requests#这个库用于解析网页
from bs4 import BeautifulSoup#这个库用于抓取数据
import urllib.request#在下面代码中主要用来下载照片

x = 0

def GetImg():
response = requests.get('http://desk.zol.com.cn/bizhi/8378_103862_2.html')#解析html页面,原页面好像不能打开了
re = response.text#读取html页面源代码内容
soup = BeautifulSoup(re, 'html.parser')#指定解析器为“html.parser
picture = soup.find_all('img')#找出所有img标签,即<img>到</img>,得到的是一个列表清单
for i in picture:#准备在上面的清单找东西,遍历
global x#定义全局x
imgl = i.get('src')#获取上面清单里单个数据里的图片地址
urllib.request.urlretrieve(imgl, 'E:/python/wawawawa/%s.jpg' % x)#按上面的图片地址下载图片到指定位置,同时文件名按数字定义。另外,这里以后可以加判断,如果不存在,自动生成。
x+=1#数字自增
print("正在下载第%x张图片"%x)#提示

def getHtml(url):#这个函数就没用到,重复的
headers = {#头部,用于解除防爬虫机制
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
pagel = urllib.request.Request(url, headers=headers)#加载头部,请求网页内容
page = urllib.request.urlopen(pagel)#获取一个网页的内容
html = page.text#读取html页面源代码内容

GetImg()#调用。总之还需要改不少内容的。追问

大佬我这个程序运行到一半一直报错,有的网站爬到第十几张会报错 有的第二三张就报错了,是程序哪些地方出错了吗😥

追答

对的,不是错,是程序还不完善,比如请求过快,没有超时重试等

本回答被提问者采纳
第2个回答  2019-12-09
● 使用Pyhton自身提供的交互式解释器编写Python程序
● 使用Python自身提供的IDLE集成开发环境编写Python程序
● 使用eclipse集成开发环境编写Python程序
1、使用Pyhton自身提供的交互式解释器
在Linux、Windows、Mac OS的命令行窗口或Shell窗口,执行python命令,启动Python交互式解释器。交互式解释器会等待用户输入Python语句。输入Python语句并回车,解释器会执行语句并输出结果。交互式解释器是学习Python语言比较好的工具,优点是输入Python语句可以立即得到反馈。
相似回答