[python]豆瓣网爬取图书图片信息教程

[python]豆瓣网爬取图书图片信息教程

1.准备工作:已经爬取了图片的URL,图书的相关信息,以便后期进行标记。
画圈处为图片链接
画圈处为图片链接和图书ID(用于匹配图片)

2.定义url数组和id数组
作用同上,且长度相同,url用于爬图片,id用于命名图片存储本地。
在这里插入图片描述
在这里插入图片描述
3.操作代码
引用了python的requests库
PS:在获取网页操作r = requests.request(‘get’,urls[i], headers=headers) #获取网页
时,若不加headers

headers配置文件headers = {‘User-Agent’:‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36’}
会报错403,也就是说你的IP被豆瓣封了。

import os
import requests

os.chdir('C:/Users/测试/Desktop/Python/pics')//操作的环境目录,即图片存取目录

urls=image_list
for i in range(len(image_list)):
    try:
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36'}
        r = requests.request('get',urls[i], headers=headers)  #获取网页
        with open(str(id_list[i])+'.jpg','wb') as f:  #打开写入到path路径里-二进制文件,返回的句柄名为f
            f.write(r.content)  #往f里写入r对象的二进制文件
        f.close()
    except exception as e://可能报错时要抛出异常,打印当前的已保存索引,便于之后操作
        print(i)
        print(e)
        print(r.status_code)

4.解决豆瓣封IP方法

  • 设置headers
  • 设置cookies
  • 用多线程爬取