python爬取豆瓣排名前250部电影封面

话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图:在这里插入图片描述
容易看出我们所需要的封面地址在img这个标签下的src属性当中,因此接下来我们就可以用xpath语法去获取我们想要获得的信息了,获取到目的信息后使用request下的urlretrieve函数将图片保存在指定的路径下,代码如下:

def get_img(lis):
    for li in lis:
        global num   #计数变量
        title = li.xpath('.//span[@class="title"]/text()')[0] #获取影片标题
        img_url = li.xpath('.//img/@src')[0]      #获取封面地址
        file_name = 'E:/douban/' + title + str(num) + '.jpg'
        urllib.request.urlretrieve(img_url,filename=file_name) #保存到本地文件中
        num += 1

其中获取了影片的标题title并且加入了计数变量num,这些都是为使保存在E:\douban 路径下的封面图片信息更加完整。
接下来我们为了将10页(一页中有25部)所以影片信息获取,只需要在首页url地址稍作改动即可,最终完整代码如下:

import urllib.request
import requests
from lxml import html

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0'
    }

def get_html(url):
    response = requests.get(url,headers=headers).text
    element = html.etree.HTML(response)
    lis = element.xpath('//ol[@class="grid_view"]')[0]
    return lis

def get_img(lis):
    for li in lis:
        global num   #计数变量
        title = li.xpath('.//span[@class="title"]/text()')[0] #获取影片标题
        img_url = li.xpath('.//img/@src')[0]      #获取封面地址
        file_name = 'E:/douban/' + title + str(num) + '.jpg'
        urllib.request.urlretrieve(img_url,filename=file_name) #保存到本地文件中
        num += 1
def main():
    global num
    num = 1
    for i in range(10):
        url = 'https://movie.douban.com/top250?start=' + str(25 * i)
        ht = get_html(url)
        get_img(ht)
    i += 1

main()

`代码也是比较简单的,这里就不全做解释了,给大家看一下运行后的成果:
在这里插入图片描述
可以清楚的看到我们想要的内容就都在指定的文件路径下了。当然爬取其他类似静态网页如妹子图网之类的也是如此哦。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值