Python 的select 方法抓取的多个链接列表,为什么这个列表索引只有一个 [0]?如何批量下载这个列表链接的图片?

新手上路,请多包涵

用python的 requests 和BeautifulSoup的select方法 抓取糗百的图片,无法批量下载。代码如下:

import os
import urllib.request
import requests
from bs4 import BeautifulSoup
url = "https://www.qiushibaike.com/imgrank/"
wb_data = requests.get(url).text
soup = BeautifulSoup(wb_data,'lxml')
images = soup.select('div.thumb > a > img')
for img in images:
link = img.get('src')
links = 'https:' + link
`print(s)

获得的图片链接,打印的结果是

clipboard.png

然后,使用 urllib.rquest.retrieve() 方法遍历所有链接,批量下载图片。

urls = links
local = os.path.join('d:/我的电脑/图片/Image','.jpg')
urllib.request.urlretrieve(urls,local)

程序台没有出错,得到的结果是
文件夹下有一张图片。只下载了一张图片。但是根据我的测试观察,文件夹下那张照片,是遍历了所有图片链接,并且下载后停留在了某一个图片上。

我将链接单独进行处理可以批量下载。如图

clipboard.png

请问使用select 方法定位到的链接标签如何进行处理?才能进行批量下载?
为何得到的链接是列表属性,而且有很多链接,但是只有一个索引 links[0],而打印的links[0] 是这个结果,如图
如何在仍旧使用美丽汤(比如不使用正则表达式)这个方法获取链接,然后进行小的改动,进行批量下载?

clipboard.png

阅读 2.8k
2 个回答
locals = [os.path.join('d:/我的电脑/图片/Image',i.split('/')[-1]) for i in urls]
map(urllib.request.urlretrieve,urls,locals)

你的links变量并不是一个列表,而是单个链接啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题