爬取汽车之家某品牌图片
需求
爬取汽车之家某品牌的汽车图片
目标url
https://car.autohome.com.cn/photolist/series/52880/6957393.html#pvareaid=3454450
页面分析
最开始出现的全景的图片不是爬取的范畴。每一页有90张图片,还要做一个翻页的处理。
找到一张图片,点右键,检查,可以发现每一张图片都存放在一个li标签内,所有的li标签都存放在ul标签内,图片的链接信息存放在li标签下a标签里的img标签内,复制src后面的地址,在新的网址中可以打开图片,说明存放的是图片的url地址。在打开图片的网址中,可以发现浏览器对图片地址进行了补全的操作。
下面要判断网页是动态还是静态加载出来的,对img标签进行判断,看是否存放在源码中,点击右键,检查网页源码,可以看到img里图片的url信息在源码中存在,所以目标url即为要爬取的url
下面进行翻页的处理。
第2页的url:https://car.autohome.com.cn/photolist/series/65/p2/
第3页的url:https://car.autohome.com.cn/photolist/series/65/p3/
这时我们把p3改为p1,发现也可以访问第1页
第1页的url:https://car.autohome.com.cn/photolist/series/65/p1/
实现步骤
创建scrapy框架,用https://car.autohome.com.cn/photolist/series/52880/6957393.html#pvareaid=3454450,作为目标url进行访问。
import scrapy
from pic.items import PicItem
class AutoSpider(scrapy.Spider):
name = 'auto'
allowed_domains = ['car.autohome.com.cn']
start_urls = ['https://car.autohome.com.cn/photolist/series/52880/6957393.html#pvareaid=3454450']
def parse(self, response):
lis = response.xpath('//ul[@id="imgList"]/li')
for li in lis:
item = PicItem()
item['src'] = 'http:' + li.xpath('./a/img/@src').get()
print