1.环境准备

python3.6

pycharm

安装requests库,pip install requests

2.XPath语法

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。XML实例文档

Harry Potter

29.99

Learning XML

39.95

常用路径表达式

nodename 选取此节点的所有子节点

/ 从根节点选取

// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置

. 选取当前节点

.. 选取当前节点的父节点

@ 选取属性实例

bookstore 选取bookstore元素的所有子节点

/bookstore 选取根元素bookstore

bookstore/book 选取属于bookstore的子元素的所有book元素

//book 选择所有book子元素,而不管它们在文档中的位置

bookstore//book 选取属于bookstore元素的后代的所有book元素,而不管它们位于

bookstore之下的什么位置

// @ lang 选取名为lang的所有属性

3.猫眼爬虫实例

import requests

import json

from lxml import etree

# 爬取一个网页

def getOne(n):

#模拟浏览器访问模式,防止拒绝访问

header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}

r = requests.get(url, headers=header)

return r.text

#data = getOne(10)

#print(data)

def parse(text):

#初始化 标准化

html = etree.HTML(text)

#提取我们想要的信息,需要写xpath语法

#提取电影名 names xpath返回列表

names = html.xpath('//div[@class="movie-item-info"]/p[@class="name"]/a/@title')

#提取上映时间

releasetimes = html.xpath('//p[@class="releasetime"]/text()')

items = {}

for name,releasetime in zip(names,releasetimes):

items['name'] = name

items['releasetime'] = releasetime

#生成器,循环迭代,yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。

yield items

#保存数据

def save2File(data):

with open('movie.json','a',encoding='utf-8') as f:

#把字典和列表转化为字符串

data = json.dumps(data,ensure_ascii=False) + ',\n'

f.write(data)

def run():

for n in range(0,10):

text = getOne(n)

items = parse(text)

for item in items:

print(item)

save2File(item)

if __name__ == '__main__':

run()

扩展函数:zip(a,b)拉链函数,序列解包

a = [1,2,3,4,5]

b = ['a','b','c','d','e']

it = {}

for c,d in zip(a,b):

it['c'] = c

it['d'] = d

print(it)

JSON模块之dumps

json.dumps

将Python对象编码成字符串

import json

data = {'a':1,'b':2,'c':3,'d':4,'e':5}

jsonDumps = json.dumps(data)

jsonLoads = json.loads(jsonDumps)

print(jsonDumps,type(jsonDumps))

print(jsonLoads,type(jsonLoads))

输出:

{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

写入文件一

f = open()

f.write()

f.close()

写入文件二(自动关闭文件)

保存文件:

with open() as f:

f.write()

按行读取:

with open() as f:

for line in f:

print(line)

#do something

python 抢票代码 猫眼演出_python爬虫实例-猫眼电影相关推荐

  1. python抢票代码_GitHub标星超12K,抢票神器大更新,支持候补

    掐指一算,距离国庆黄金周还有半个月的时间!你出行的车票都抢到了吗? 图片来自 pexels 根据国务院办公厅发布的关于 2019 年部分节假日安排的通知,国庆放假安排是:10 月 1 日至 7 日. ...

  2. python抢票代码运行内存越来越大_50 个加速包都抢不到车票,还不如这个 Python 抢票神器...

    阅读文本大概需要 6.6 分钟. 又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以有挺多的人,宁愿多花些钱去找黄牛买票.但今年各种抢票软件的横行,还有官方出的加速包 ...

  3. python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行

    爬虫的目标 爬取猫眼电影TOP100的电影名称,时间,评分,图片等信息 抓取分析 查看网页源代码,找到对应的目标信息,发现一部电影对应的源代码是一个dd节点 抓取首页 为了方便,这里先抓取第一页的内容 ...

  4. python抢票代码_教你用Python动刷新抢12306火车票,附源码!

    用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据 ...

  5. python抢票12306源码_Python突破12306最后一道防线,实现自动抢票(附源码)

    一年一度的春运又来了,今年我自己写了个抢票脚本.使用Python+Splinter自动刷新抢票,可以成功抢到.(依赖自己的网络环境太厉害,还有机器的好坏) Splinter是一个使用Python开发的 ...

  6. python抢票12306源码_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...

  7. python抢票代码_五一要来了,教你用Python动刷新抢12306火车票,附源码

    用python另一个抢票神器,你get到了吗? 2020年时间飞逝,转眼间马上要到五一了,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据, 预示着今年春运回程和 ...

  8. python抢票代码_五一要来了,教你用Python自动抢火车票,附源码

    用python另一个抢票神器,你get到了吗? 2020年时间飞逝,转眼间马上要到五一了,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据, 预示着今年春运回程和 ...

  9. python抢票代码_如何使用python爬取抢票?

    有身在异乡的小伙伴们?相信绝大多数的小伙伴都曾有过离开过,或现在是,独在异乡的情况吧,拿小编来说,小编现在就是这种状况,回家次数不多,不是因为没有时间,而是因为没有车票,每次都需要拿抢票软件,于是,脑 ...

最新文章

  1. java cglib jar包_Java面试题|反射必看的4道面试题
  2. html5中页面拨打电话的方式
  3. 疯狂python讲义视频 百度云-疯狂Python讲义 PDF 含源码工具版
  4. 在线流程图绘制网站draw.io支持的三种存储介质
  5. minio 单机安装、部署 centos7环境
  6. SDUT-保留整数 -
  7. 大数据之-入门_Hadoop发展历史---大数据之hadoop工作笔记0009
  8. java8函数式编程闭包_java8入门必备—函数式编程思维——函数式语言向语言和运行时让渡控制权的途径——迭代让位于高阶函数、闭包...
  9. win7计算机管理没有用户模块,Win7系统下安装ipx协议提示找不到相应的模块如何解决...
  10. 手机点餐系统概述_餐馆点菜系统概要设计
  11. 文献 | 一眨眼就错过了的心理机制
  12. 概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布
  13. [OPENCV]010.深度神经网络(dnn模块)
  14. 视频产生的本质及色彩空间:RGB 和 YUV
  15. 【新2023Q2模拟题JAVA】华为OD机试 - 预订酒店
  16. java + Selenium实现12306自动购票
  17. MATLAB绘制堆叠形柱状图
  18. java常见的5个异常_Java中常见的五种异常
  19. 商城系统建设:如何搭建自己的网上商城平台
  20. 基因组选择中的参考群更新策略

热门文章

  1. linux重定向:21
  2. Flink所使用到maven依赖
  3. matplotlib之plot,figure(笔记一)
  4. shell、ftp、mysql如何连接笔记
  5. Android系统的手表adb抓取log日志
  6. python聚类分析如何确定分类个数_R语言做聚类分析Kmeans时确定类的个数
  7. python的for语句要用冒号吗_python中循环的写法 for
  8. cmd更改分辨率_快速切换Mac电脑的屏幕分辨率
  9. 【Cinemachine智能相机教程】VirtualCamera(四):Noise属性
  10. Linux命令完全指南route,Linux命令--route