首页 新闻 搜索 专区 学院

现金悬赏:Github图片爬虫

0
悬赏园豆:200 [待解决问题]

如上图的Github页面,网站页面中有许多链接,每个链接都是一张图片,需要一个爬虫程序把所有图片都爬下来保存到指定目录并删除损坏的文件(不保证链接全部可以打开)。链接即图片本身。

图片数量级最少上千,内存上TB

在Win10中运行,如果可以做到,不但有园豆奖励,成功后可以联系QQ给予红包

御·Dragon的主页 御·Dragon | 初学一级 | 园豆:6
提问于:2020-05-08 18:58
< >
分享
所有回答(1)
0

写这个和玩一样的,多少钱

from selenium import webdriver
from requests_html import HTMLSession
driver = webdriver.Chrome()
session = HTMLSession()

res = session.get('https://github.com/search?p=3&q=啊')
#q你搜索的内容
#p页码
url_list = res.html.xpath('//*[@class="mt-n1"]/div/a/@href')
for a in url_list:
    driver.get(f'https://github.com/{a}')
    a = a.replace('/','-')
    driver.get_screenshot_as_file(f'{a}.png')
    driver.close()
    break
#自己稍微改改就全部了,代码就这么简单


小小咸鱼YwY | 园豆:1581 (小虾三级) | 2020-05-08 19:45

新问题

import urllib
import urllib.request
#-*- coding: UTF-8 -*- 
f = open("links.txt")             # 返回一个文件对象  
line = f.readline()             # 调用文件的 readline()方法  
i = 1
while line:  
    urlStr = line
    name = './'+str(i)+'.png'
    print("下载第"+str(i)+"张......")
    urllib.request.urlretrieve(urlStr , filename=name) #获得图片并保存
    line = f.readline()
    i += 1
f.close()

这个代码,会把同目录中一个links.txt中所有图片链接都下载,但是有些图片链接无法访问,或者404,于是程序闪退,请问如何解决。

顺带求删除损坏的文件。

请在原代码上进行修改,修改完后把代码直接放上来我来结帖

支持(0) 反对(0) 御·Dragon | 园豆:6 (初学一级) | 2020-05-08 20:28

如这个http://i.imgur.com/06YTAjg.jpg

支持(0) 反对(0) 御·Dragon | 园豆:6 (初学一级) | 2020-05-08 20:32

@御·Dragon:

没兴趣细究把你代码改了一下
import urllib
import urllib.request

with open("links.txt",'r',encoding='utf8') as fr:
    i = 1
    for a in fr :
        name = f'第{i}张'
        try:
            urllib.request.urlretrieve(a, filename=name)  # 获得图片并保存
        except:
            print(f'出错的url{a}')
        i+=1
支持(0) 反对(0) 小小咸鱼YwY | 园豆:1581 (小虾三级) | 2020-05-08 20:42

@小小咸鱼YwY: 请加上图片后缀jpg

支持(0) 反对(0) 御·Dragon | 园豆:6 (初学一级) | 2020-05-08 20:58

@小小咸鱼YwY: 我不会加

支持(0) 反对(0) 御·Dragon | 园豆:6 (初学一级) | 2020-05-08 20:58

@小小咸鱼YwY: 且图片请保存在程序目录中下一个目录,如:

./pics/
支持(0) 反对(0) 御·Dragon | 园豆:6 (初学一级) | 2020-05-08 21:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册