最近接到一个朋友的需求,说需要把运单的记录保存下载,因为每个月有上千单快递,手动去复制内容的话,以免跟快递公司有争议的时候,可以做个证明。
我的思路:
1、如何获取动态网页的内容;
2、输入参数肯定有运单号,那就需要从excel中将运单号读取并将其作为参数取网页内容;
3、得到信息后,处理为网页显示的内容;
4、将信息存入到excel。
1、我想着Python实现常规的静态网页抓取,往往是用urllib来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字
import urllib.request req = urllib.request.Request('http://python.org/') response = urllib.request.urlopen(req) the_page = response.read()
然后我们抓取到的网页是没有动态信息的,因为信息是通过js动态填充到网页的。
2、打开Chrome浏览器,利用Chrome的“开发者工具”来寻找谁是真正的内容提供者,按下键盘F12即可呼出此工具;
3、此时选中“Network”标签,在地址栏中输入此页面“http://www.*.com/cn/sc/dynamic_functions/waybill/#search/bill-number/运单号”,浏览器会分析出此次响应的全过程,而红框内的文件,就是此次响应中,浏览器和web后端的所有通信。
下面是网页的分析过程
然后我们根据每个请求去找到我们想要的信息,如下
接着,我们切换到Header页面,看到了么,是通过Get的方式得到的内容
我们将
说明我们通过这个链接就可以取到我们想要的动态内容。
4、真正的信息源已经被抓到,剩下的就是用Python处理这些页面上的字符了。
5、将单号当做参数传入,得到动态信息后,根据正则将html内容去除,就得到一个json串,然后我们将其当字符串处理即可
def gethtml(waybill=''): req = urllib.request.Request( 'http://www.。。。/service/bills/' + waybill + '/routes?app=bill&lang=sc®ion=cn&translate=') response = urllib.request.urlopen(req) the_page = response.read().decode("utf8") dr = re.compile(r'<[^>]+>', re.S) data = dr.sub('', the_page) strinfo = re.compile('"') rs = strinfo.sub('', data) return rs
如此已经搞定了我们整个需求中最关键的一步。
相关推荐
python3.5爬虫抓取北京天气
python3.5爬虫抓取北京天气json
在这个项目中,“python3.5 爬取花瓣美女”显然指的是使用Python 3.5来编写一个爬虫程序,目标是从花瓣网(Huaban)抓取关于美女图片的相关数据。 首先,我们需要了解Python 3.5中的关键爬虫库,如`requests`用于...
你可以通过在命令行输入`python --version`或`python3.5 --version`来检查Python的版本。如果尚未安装Python 3.5,你需要从Python官网下载并安装对应版本。 接下来,为了安装Scrapy,你需要安装pip,这是Python的包...
标题提到的"pywin32-219适配python3.5",意味着这个版本的`pywin32`库是专门为了与Python 3.5版本兼容而设计的。 `pywin32`库是由Mark Hammond创建并维护的,它包含了对Windows API的Python绑定,允许开发者使用...
这些资料涵盖了Python3.5爬虫项目的多个方面,适合初学者到进阶者学习。Python是一种广泛用于数据抓取和处理的编程语言,其简洁明了的语法使得爬虫开发变得相对容易。在这个项目中,我们可以看到从基础到高级的各种...
此外,lxml还支持HTML解析,可以方便地对网页内容进行抓取和处理。例如,我们可以使用`lxml.html`模块来解析HTML文档,并提取特定元素: ```python from lxml import html # 解析HTML字符串 doc = html.fromstring...
在Python编程语言中,`async_await`特性是自Python 3.5版本引入的一种革命性的异步编程模型,极大地简化了并发和非阻塞I/O操作。这一特性基于协程(coroutines)的概念,使得编写高效且易于理解的并发代码成为可能。...
9. **网络爬虫**:学习如何编写网络爬虫抓取网页数据,包括requests、BeautifulSoup等库的使用。 10. **Python与数据库**:如何使用sqlite3、MySQLdb或其他库连接和操作数据库。 "docs-pdf"可能是一系列PDF文档,...
3. **爬虫开发**:掌握BeautifulSoup、Scrapy等工具的使用,实现自动化网页抓取。 4. **机器学习实践**:基于Scikit-Learn库进行基础的机器学习模型训练,如分类、回归任务等。 5. **游戏开发**:使用Pygame库开发...
本项目"Python-百度指数抓取更新版本"是针对百度指数API的一种优化,旨在简化原有的异步拼图验证机制,转而采用数字解密方式,以适应Python3.5及以上版本的运行环境。以下将详细探讨该项目涉及的知识点。 首先,...
本资源基于Python3.5环境,旨在教授如何利用Python编写爬虫来抓取百度百科上的1000个词条信息。在这个过程中,我们将涉及以下几个关键知识点: 1. **Python基础**:Python是爬虫开发的常用语言,因其简洁明了的语法...
1.先安装文件夹中的python3.5 2.然后点击一键安装库环境,这里比较慢,大概花40分钟 3.一键启动获取弹幕 4.打开里面的冲马桶 5.下载直播伴侣,点击获取窗口,点击开始直播 6.输入你的地址 7.完美运行 需要更多好的...
1. **Python3.5**: - Python 是一种高级编程语言,以其简洁、易读性强的特点而受到广大开发者青睐。 - Python3.5 是一个广泛支持且功能强大的版本,包含了大量内置库和支持第三方库的能力。 - 在该项目中,...
本文主要给大家介绍了关于利用python 3.5检测路由器流量并写入txt的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍。 环境交代:win10+python3.6 代码非常简单, 模拟登陆,没有 网页...
本文将详细介绍如何在Python 2.7及Python 3.5环境下实现URL重试机制。 #### 一、基本概念 **URL重试机制**是指当发送HTTP请求时,如果出现异常或未得到预期的状态码(如200),则进行再次尝试的过程。通过设定一定...
在后端开发中,Python库如Pylinky,能够帮助开发者处理各种复杂的任务,例如数据抓取、URL管理、网络请求等。Python的这些库通常是开源的,这意味着开发者可以查看并修改源代码,甚至可以根据需求进行定制化开发。 ...
.zip"是一个专门为Python 3.5版本设计的Twisted安装包,它包含了适用于64位和32位Windows操作系统的版本。理解这个安装包的关键在于了解Twisted框架以及如何根据Python环境选择合适的版本。 首先,让我们深入了解...
### Python3.5以上版本lxml导入etree报错的解决方案 #### 背景介绍 在使用Python进行Web开发、数据抓取等任务时,经常需要用到`lxml`库来解析HTML或XML文档。然而,在某些情况下,尤其是在Python 3.5及更高版本中...
在这个场景中,我们将讨论如何结合Python、Selenium和PhantomJS来抓取动态加载的网页内容。 首先,确保你已经安装了Python 3.5或更高版本。接下来,你需要安装Selenium库,可以通过Python的包管理器pip来完成,命令...