scrapy模拟Chrome有界面的浏览器下载谷歌搜索的图片

本文介绍了如何利用Scrapy爬虫解决动态加载页面的问题,特别是针对谷歌搜索中需要放大才能看到的图片链接。由于这些图片链接存在于JavaScript中,因此需要特殊方法来获取。通过分享的代码示例,作者旨在帮助有类似需求的读者高效地下载大量图片。
摘要由CSDN通过智能技术生成

今天公司要求爬取图片,个人觉得下载一个一个点太麻烦,量也比较大

很多想写代码的初衷都是为了偷偷懒,省省时间和精力

刚开始爬因为需要的图片都是经过放大的图片,源码里面需要的图片链接都是存在于js里面(很多信息还是得看源码分析,不能只在页面检查,因为很多信息都是动态加载出来的),好了,话不多说,附上我写的代码:(有啥问题的可在下面评论大笑,希望能帮到有需要的人)

# -*- coding: utf-8 -*-
'''使用谷歌界面浏览器'''
import scrapy
import requests, re, os

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import urllib.request
import random
import time


class ScrapyPictureSpider(scrapy.Spider):
    name = 'ScrapyPicture'
    start_urls = []
    university_name = ['Memorial University of Newfoundland', 'University of British Columbia']
    university_name_dict = {}
    for university in university_name:
        u =
Scrapy是一个强大的Python爬虫框架,可以用于抓取网页数据。在Scrapy中,可以使用自定义的Pipeline来实现图片下载功能。 首先,你需要在Scrapy项目中创建一个自定义的Pipeline来处理图片下载。在该Pipeline中,你可以使用Python的requests库或者Scrapy提供的内置函数来下载图片。 以下是一个简单的示例代码,展示了如何在Scrapy中实现图片下载功能: ```python import scrapy from scrapy.pipelines.images import ImagesPipeline class MyImagesPipeline(ImagesPipeline): def get_media_requests(self, item, info): for image_url in item['image_urls']: yield scrapy.Request(image_url) def file_path(self, request, response=None, info=None): # 自定义图片保存路径 image_guid = request.url.split('/')[-1] return 'images/%s' % (image_guid) ``` 在上述代码中,`get_media_requests`方法用于获取要下载图片URL,并通过`yield`关键字将其传递给Scrapy引擎进行下载。`file_path`方法用于指定图片保存的路径。 接下来,在你的Scrapy项目的settings.py文件中,将自定义的Pipeline添加到ITEM_PIPELINES配置项中: ```python ITEM_PIPELINES = { 'your_project_name.pipelines.MyImagesPipeline': 1, # 其他的Pipeline... } ``` 最后,在你的Spider中,将需要下载图片的URL添加到item中,并在item中定义一个字段来存储这些URL: ```python import scrapy class MySpider(scrapy.Spider): name = 'my_spider' def start_requests(self): # 构造请求并发送给Scrapy引擎 yield scrapy.Request(url='http://example.com', callback=self.parse) def parse(self, response): # 解析网页内容,提取图片URL并存储到item中 item = {} item['image_urls'] = response.css('img::attr(src)').getall() yield item ``` 在上述代码中,`parse`方法中使用了CSS选择器来提取网页中的图片URL,并将其存储到item的`image_urls`字段中。 这样,当你运行Scrapy爬虫时,图片将会被下载并保存到指定的路径中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值