python爬虫(实例1):requests+xpath 爬取并下载豆瓣电影的演员照片

阅读: 评论:0

python爬虫(实例1):requests+xpath 爬取并下载豆瓣电影的演员照片

python爬虫(实例1):requests+xpath 爬取并下载豆瓣电影的演员照片

import requests
import re
import os
from lxml import etree# 地址 豆瓣 复仇者联盟4:终局之战 的全部演职员
url = ""
# 请求
res = (url)
if res.status_code != des.ok:print('演职员地址请求失败!')exit()# 转码
ding = 'utf-8'# 保存文件
# with open('one.html', 'w') as f:
#     f.)# 建立HTML树
tree = etree.)
path_name = '//div[@id="wrapper"]/div[@id="content"]/h1/text()'# 创建照片文件夹
folder = os.getcwd()+'/imgs/'+tree.xpath(path_name)[0] + '/'
if not ists(folder):print('创建文件夹')os.makedirs(folder)# 标题 节点位置
# class 有多个必须写全 例如 含有两个 celebrities-list  __multiline 不能只写一个
path_title = '//div[@class="list-wrapper"][2]/ul[@class="celebrities-list  __multiline"]/li/a'# 提取 标题 节点
node_title = tree.xpath(path_title)
# # 正则
re_str = 'img+.*[jpg|png]'for title_node in node_title:title = ('title')# 子节点的获取,线转化为字符串再转化为HTML树treec = etree.string(title_node))# 地址位置节点path_url = '//div'# 提取节点node_url = treec.xpath(path_url)if len(node_url) > 0:# 获取含有图片地址的属性line = node_url[0].get('style')# 正则匹配matchObj = re.search( re_str, line)img_url = up()if matchObj:# 保存文件with open(folder+title+img_url[-4::], 'wb') as f:f.(img_url).content)print('下载成功'+title)else:print('文件地址未查询到'+title)

 

本文发布于:2024-01-30 13:47:56,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659367920434.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:爬虫   豆瓣   实例   演员   照片
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23