python爬虫--用xpath爬豆瓣电影
- 将目标网站下的页面抓取下来
- 将抓取下来的数据根据一定规则进行提取
- 将目标网站下的页面抓取下来
import requests

headers = {
#请求身份/默认为User-Agent:python
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36',
'Referer': 'https://movie.douban.com/'
}
url = 'https://movie.douban.com/cinema/nowplaying/zhengzhou/'

response = requests.get(url,headers=headers) #响应
#print(response.text)
text = response.text
from lxml import etree
html = etree.HTML(text)

ul = html.xpath("//ul[@class='lists']")[0]
#print(etree.tostring(ul,encoding='utf-8').decode('utf-8'))
lis = ul.xpath('./li')
for li in lis:
#print(etree.tostring(li,encoding='utf-8').decode('utf-8'))
title = li.xpath('@data-title')[0]
#print(title)
score = li.xpath('@data-score')[0]
# print(score)
poster = li.xpath('.//img/@src')[0]
# print(poster)
request.urlretrieve(poster, 'D:/A/' + score + title + '.jpg')
下载到D盘下A目录中,文件名为 评分+影名.jpg
2.显示进度条
fns_num = 1
num = len(lis)
for li in lis:
···
print("\r完成进度: {:.2f}%".format(fns_num * 100 / num), end="")
fns_num += 1
#coding=UTF-8 import requests
from lxml import etree
from urllib import request headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36',
'Referer': 'https://movie.douban.com/'
}
url = 'https://movie.douban.com/cinema/nowplaying/zhengzhou/'
response = requests.get(url,headers=headers)
# print(response.text)
text = response.text html = etree.HTML(text)
ul = html.xpath("//ul[@class='lists']")[0]
# print(etree.tostring(ul,encoding='utf-8').decode('utf-8'))
lis = ul.xpath("./li")
# movies = []
fns_num = 1
num = len(lis)
for li in lis:
# print(etree.tostring(li,encoding='utf-8').decode('utf-8'))
title = li.xpath('@data-title')[0]
# print(title)
score = li.xpath('@data-score')[0]
# print(score)
poster = li.xpath('.//img/@src')[0]
# print(poster) request.urlretrieve(poster, 'D:/A/' + score + title + '.jpg')
print("\r完成进度: {:.2f}%".format(fns_num * 100 / num), end="")
fns_num += 1
python爬虫--用xpath爬豆瓣电影的更多相关文章
- 一个简单python爬虫的实现——爬取电影信息
最近在学习网络爬虫,完成了一个比较简单的python网络爬虫.首先为什么要用爬虫爬取信息呢,当然是因为要比人去收集更高效. 网络爬虫,可以理解为自动帮你在网络上收集数据的机器人. 网络爬虫简单可以大致 ...
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- python简单爬豆瓣电影排名
爬豆瓣电影 网站分析: 1 打开https://movie.douban.com,选择 [排行榜],然后随便选择一类型,我这里选择科幻 2 一直浏览网页,发现没有下一的标签,是下滑再加载的,可 ...
- 非常全的一份Python爬虫的Xpath博文
非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- python爬虫:XPath语法和使用示例
python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
随机推荐
- ESP8266 鼓捣记 - 从零制作一个温湿度计
一.前言 经过上一篇文章 <ESP8266 鼓捣记 - 入门(环境搭建) >搭建好环境后,肯定不会满足于 Hello World ,想快速做一个实际有用的东西出来,我认为温湿度计就非常合适 ...
- Linux标准输入、标准输出、错误输出
Linux中的输入文件.输出文件.错误输出 文件名称 文件描述符 标准输入 0 (默认是键盘) 标准输出 1 (默认是屏幕) 标准错误 2 (默认是屏幕) 输出重定向 Linux中&表示后台运 ...
- beef+metasploit
beef调用metasploit模块,直接xss吊打 先进入beef的文件夹 对config.yaml进行修改 将metasploit的false改为true 进入这个文件夹 修改配置文件 检查met ...
- 转化dataframe中一组序列为时间序列的方法-to_datetime()的最新用法
一.to_datetime()的最新用法: hs300_hf['date'] = pd.to_datetime(hs300_hf['date']) hs300_hf.set_index('date', ...
- Fruity Parametric EQ 2使用说明(二)——FL Studio插件教程
Fruity Parametric EQ 2均衡器,是一款我们在FL Studio制作音乐时经常会用到的插件,它是EQ中的战斗鸡,它不仅有一个高级的 7 波段参数均衡器,还具有声谱分析能力.我们在对很 ...
- 给git日志添加好看的样式
windows添加如下命令,让入了全局环境里 git config --global alias.lg "log --color --graph --pretty=format:'%Cred ...
- Vue—新版本router-view 与 keep-alive 的互动
1. <keep-alive> 直接嵌套到 <router-view> 上会失效,正确写法: <router-view #="{ Component }&quo ...
- uniapp自定义picker城市多级联动组件
uniapp自定义picker城市多级联动组件 支持多端--h5.app.微信小程序.支付宝小程序... 支持自定义配置picker插件级数 支持无限级 注意事项:插件传入数据格式为children树 ...
- 2019年第十届蓝桥杯【C++省赛B组】D、E、G、H、I题解
这场有几道题目思路,在之前比赛中遇到过 D. 数的分解 #枚举 题意 将\(2019\)分解成\(3\)个各不相同的正整数之和,并且每个正整数都不包含数字\(2\)和\(4\),一共有多少种分解方法? ...
- Java基础教程——反射机制
Java反射机制 Java反射机制是Java语言的一个重要特性,使得Java语言具备"动态性": 在运行时获取任意一个对象所属的类的相关信息; 在运行时构造任意一个类的对象: 在运 ...