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

时间:2023-03-09 18:43:50
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('<div class="pic">(.*?)</div>', 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的图片

  • 爬取的图片

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