crawlspider 创建项目| crawlspider 图片保存 | 使用session | 代理ip 的使用 | cookies 获取方法 | 不同 item 传递参数

1.  crawlspider 创建项目 

scrapy  genspider -t crawl 项目名称 要爬取网址

scrapy  genspider -t crawl xiao xiao.com

 

2.  crawlspider 图片保存

  2.1 下载方式一  pipeline文件


from scrapy.pipelines.images import ImagesPipeline
''' 实现图片基础下载'''
class ImagePipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        yield scrapy.Request(item['image_urls'])

  2.2下载方式二 pipeline文件

import scrapy
from itemadapter import ItemAdapter
from scrapy.exceptions import DropItem
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 item_completed(self, results, item, info):
        image_paths = [x['path'] for ok, x in results if ok]
        if not image_paths:
            raise DropItem("Item contains no images")
        adapter = ItemAdapter(item)
        adapter['image_paths'] = image_paths
        return item

 


 

3. 使用session 来请求

 

4. 代理ip 的使用 

 


 

5.  cookies 获取方法 

    temp = ''
    cookies = {data.split('=')[0]:data.split('=')[1] for data in temp.split(';')}

 

6. 接受不同 item 传递参数  

  6.1 方式一 

if item.__class__.__name__ == 'name'

 

posted @ 2022-08-13 10:27  我在春天等伱  阅读(67)  评论(0)    收藏  举报