爬虫实例图片爬取--2(某回车)

这次瞄准某回车!

导入请求库先

import requests

这网站有反爬,加个cookie直接完事

利用css来定位一下

link_list = selector.css('.swiper-slide a  img::attr(src)').getall()

 打印出来后发现是小图,仔细分析一下地址,发现小图都是360_360,而大图是source

那么

for img in link_list:
    img = img.replace('360_360','source')
    print(img)

这样子点开之后全是大图了!

然后就是保存了,实现给图片二进制,再进行保存

img_data = requests.get(img).content
    title = img.split('/')[-1]
    with open(f'tutu/{title}',mode='wb') as f:
        f.write(img_data)
        

代码如下

import requests
import parsel

headers = {
    'cookie': '',
    'user-agent': ''
}
url = 'https://xxxxxxx/bizhi/64559-351250.html'
response = requests.get(url=url, headers=headers)
html = response.text
selector = parsel.Selector(html)
# print(selector)
link_list = selector.css('.swiper-slide a  img::attr(src)').getall()
for img in link_list:
    img = img.replace('360_360','source')
    # print(img)
    img_data = requests.get(img).content
    title = img.split('/')[-1]
    with open(f'tutu/{title}',mode='wb') as f:
        f.write(img_data)
        

单个是搞定了,但是我们要全部的·-·+

接下来去到源代码

发现这个dt是我们想要的

 那么把它复制出来,这次的话用到re模块来给它匹配

zip_data = re.findall('<div><a href="(.*?)" target="_blank">(.*?)</a>',data_html_1)

提取出来了

进行提取

for data in zip_data:
url = data[0]

下面的with open也改一下

        with open(f'tutu/{data[1]}/{title}',mode='wb') as f:
            f.write(img_data)

 这个data是我们要爬取每一个小册,这个是为了创建每一个文件夹来放这个小册的。

如果是直接运行绝对报错,因为没有这样的文件夹呀!所以我们又要用到os库来创建文件夹了。

 if not os.path.exists('tutu/' + data[1]):
        os.mkdir('tutu/' + data[1])

完整代码如下:

import requests
import parsel
import re
import os

headers = {
    'cookie': '',
    'user-agent': ''
}

response_1 = requests.get('https://xxxxx.com/', headers=headers)
data_html_1 = response_1.text
zip_data = re.findall('<div><a href="(.*?)" target="_blank">(.*?)</a>', data_html_1)
for data in zip_data:
    url = data[0]
    print(f'------正在爬取{data[1]}------')
    if not os.path.exists('tutu/' + data[1]):
        os.mkdir('tutu/' + data[1])
    # url = 'https://xxxxxxx/bizhi/64559-351250.html'
    response = requests.get(url=url, headers=headers)
    html = response.text
    selector = parsel.Selector(html)
    # # print(selector)
    link_list = selector.css('.swiper-slide a  img::attr(src)').getall()
    for img in link_list:
        img = img.replace('360_360', 'source')
        # print(img)
        img_data = requests.get(img).content
        title = img.split('/')[-1]
        with open(f'tutu/{data[1]}/{title}', mode='wb') as f:
            f.write(img_data)
        print(title, "爬取成功!")

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值