python爬虫+正则表达式实例爬取豆瓣Top250的图片

  • 直接上全部代码
    新手上路代码风格可能不太好
import requests
import re
from fake_useragent import UserAgent  #### 用来伪造爬头部信息

ua = UserAgent()
kv = {'user-agent': ua.random}
url = 'https://movie.douban.com/top250?start=0&filter='

index = 0  ####标记爬取图片的数量与命名

for i in range(0, 10):
    sum_page = i*25
    new_url = re.sub('start=\d+', 'start=%d'%sum_page, url, re.S)
    r = requests.get(new_url, headers=kv)
    r.encoding = 'utf-8'
    text = r.text
    #### 以上是一个分页爬取的操作 ####

    pictures_part = re.findall('
(.*?)
'
, text, re.S) for picture in pictures_part: img = re.findall('src="(.*?)" class', picture, re.S) pic = requests.get(img[0], headers=kv) fp = open('imgs\\' + str(index) + '.jpg', 'wb') ####这里选用wb以二进制形式写入文件 fp.write(pic.content) fp.close() print('picture' + str(index) + ' has been dawnload') index += 1

代码部分的解释

  1. 需要对爬虫的请求头部加以修改,引入fake_useragent库来进行轻微的伪造
  2. 利用了index在标记爬取图片数量的同时方便为爬取的图片命名
  3. 关于re库中的sub翻页,利用sub方法进行分页爬取
  4. 图片保存要以二进制形式写入
  5. 需要提前在和代码同目录下创建imgs文件夹

  • 爬取时不无聊加了这个东西
    python爬虫+正则表达式实例爬取豆瓣Top250的图片_第1张图片

  • 爬取的图片
    python爬虫+正则表达式实例爬取豆瓣Top250的图片_第2张图片

你可能感兴趣的:(python)