python爬虫

pyquery 的用法 --爬虫解析库

此生再无相见时 提交于 2020-03-24 07:03:53
如果你对 Web 有所涉及,如果你比较喜欢用 CSS 选择器,如果你对 jQuery 有所了解,那么这里有一个更适合你的解析库 ——pyquery 。 接下来,我们就来感受一下 pyquery 的强大之处。 1. 准备工作 在开始之前,请确保已经正确安装好了 pyquery 。若没有安装 pip install pyquery 。 2. 初始化 像 Beautiful Soup 一样,初始化 pyquery 的时候,也需要传入 HTML 文本来初始化一个 PyQuery 对象。它的初始化方式有多种,比如直接传入字符串,传入 URL ,传入文件名,等等。下面我们来详细介绍一下。 字符串初始化 首先,我们用一个实例来感受一下: html = ''' <div> <ul> <li class="item-0">first item</li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li> <li class="item-1 active"><a href="link4.html">fourth item</a></li> <li

python爬虫笔记

混江龙づ霸主 提交于 2020-03-23 10:17:18
##爬虫 -通用网络爬虫 其的主要目的是将互联网上的资源下载到本地形成一个镜像备份。类似百度等搜索引擎 -聚焦爬虫 其面向特定需求的爬虫程序,与通用爬虫的区别在于对数据进行筛选尽量爬取相关数据 -爬虫优化 1.尽量减少请求次数 2.web页面不好爬取时爬app和h5页面(手机) ##HTTP和HTTPS --超文本传输协议 HTTP 端口80 HTTPS时加入了ssl安全传输协议 端口443 ##get请求方式获取 ---get方式一般用于向服务器获取数据 --parse用于url编码 实际使用是将url地址与想要查询的数据信息拼接形成完整地url 例如 # https://tieba.baidu.com/f?ie=utf-8&kw=火影忍者&fr=search # https://tieba.baidu.com/f?kw=火影忍者&ie=utf-8&pn=50 base_url = 'http://wwww.baidu.com/f?' # 搜索信息关键字 wd = input('搜索信息关键字') pn = input('pn值') q_data = { 'wd' = wd, 'pn' = pn, } # 对q_data进行编码使用parse模块 q_data = parse.urlencode(q_data) # 拼接url full_url = base_url + q

python爬虫快递查询系统(源码)

元气小坏坏 提交于 2020-03-22 17:50:39
import requestsimport jsondef get_express_type(postid): '''根据快递单号来智能判断快递类型''' url = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=%s' % (postid,) # 这里可以用元组这样保证的数据的安全性 # 把构造后的url通过requests请求来得到相应的数据是一个json数据 rs = requests.get(url) # 再用json库中的loads数据来进行分析得到一个可用字典的方式来访问 kd_type_info = json.loads(rs.text) kd_type = kd_type_info['auto'][0]['comCode'] return kd_type, postiddef execute_data_query(type, postid): '''执行数据查询程序''' # 通过构造一个真正的url地址 url = 'http://www.kuaidi100.com/query?type=%s&postid=%s' % (type, postid) # 这里可以用元组这样保证的数据的安全性 # 把构造后的url通过requests请求来得到相应的数据是一个json数据 rs =

Python爬虫BS4库的解析器正确使用方法

两盒软妹~` 提交于 2020-03-22 10:57:42
bs4库之所以能快速的定位我们想要的元素,是因为他能够用一种方式将html文件解析了一遍 ,不同的解析器有不同的效果。下文将一一进行介绍。 bs4解析器的选择 网络爬虫的最终目的就是过滤选取网络信息,最重要的部分可以说是解析器。解析器的优劣决定了爬虫的速度和效率。bs4库除了支持我们上文用过的‘html.parser’解析器外,还支持很多第三方的解析器,下面我们来对他们进行对比分析。 bs4库官方推荐我们使用的是lxml解析器,原因是它具有更高的效率,所以我们也将采用lxml解析器。 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步! lxml解析器的安装: 依旧采用pip安装工具来安装: $ pip install lxml 注意,由于我用的是unix类系统,用pip工具十分的方便,但是如果在windows下安装,总是会出现这样或者那样的问题,这里推荐win用户去lxml官方,下载安装包,来安装适合自己系统版本的lxml解析器。 使用lxml解析器来解释网页 我们依旧以上一篇的 爱丽丝文档 为例子 html_doc = """ <html><head><title>The

Python 原生爬虫

╄→尐↘猪︶ㄣ 提交于 2020-03-22 05:12:57
Python3 实现游戏主播人气排行榜 from urllib import request import re # 爬取某个游戏主播的人气(每个游戏主播的观看人数)排行榜 ''' 爬虫前奏: 明确爬虫目的 找到数据对应的网页 分析网页的结构找到数据所在的标签位置 模拟HTTP请求,向服务器发送这个请求,获取到服务器返回给我们的HTML 利用正则表达式提取我们要的数据(主播名字,人气) 概括字符集: \d \D \w 单词字符 \W \s 空白字符 \S . 匹配除换行符\n之外的所有字符 爬虫框架: Scrapy BeautifulSoup 进阶: 爬虫 大数据的存储 数据的分析 常见问题: 反爬虫 反反爬虫 IP被封 代理IP库 ''' class Spider(): url = 'https://www.panda.tv/cate/lol' root_pattern = '<div class="video-info">([\s\S]*?)</div>' name_pattern = '</i>([\s\S]*?)</span>' number_pattern = '<span class="video-number">([\s\S]*?)</span>' def __fetch_content(self): r = request.urlopen(Spider.url) #

python爬虫-UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

荒凉一梦 提交于 2020-03-22 02:53:23
错误如下: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte 抓取的网页检查: Content-Encoding: gzip 需要做gzip的解压 request = urllib.request.Request(url = url, headers = request_headers) reponse = urllib.request.urlopen(request,timeout = timeout) data = reponse.read() buff = BytesIO(data) f = gzip.GzipFile(fileobj=buff) res = f.read().decode('utf-8') print(res) 在请求的头部加入:"Accept-Encoding":"gzip", 如果是下面:则每次返回有可能是gzip压缩,有可能不压缩,WEB 应用干脆为了迁就 IE 直接输出原始 DEFLATE Accept-Encoding: gzip, deflate在请求的头部加入: "Accept-Encoding":"gzip", 来源: https://www.cnblogs.com/zhijiancanxue/p

Python学到什么程度才可以去找工作?掌握这4点足够了!

北战南征 提交于 2020-03-21 22:24:17
大家在学习Python的时候,有人会问“Python要学到什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问题,而对于自学Python来说,那就比较难掌握,冒然出去找工作非常容易受打击,从而失去学习Python的信心。接下来我们就来看看Python学到什么程度才算是真正学会Python可以去一展身手。 一、确立目标、了解需求 做什么事情都要先确定好目标,才不至于迷失方向。我们就是Python爬虫工程师为职位目标。 在一些国内大型的招聘网上找到相关的职位要求: 在这里还是提醒下,很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步!接下来我们可以得出以下几点: 1、 python 不是唯一可以做爬虫的,很多语言都可以,尤其是 java,同时掌握它们和拥有相关开发经验是很重要的加分项 2、 大部分的公司都要求爬虫技术有一定的深度和广度,深度就是类似反反爬、加密破解、验证登录等等技术;广度就是分布式、云计算等等,这都是加分项 3、 爬虫,不是抓取到数据就完事了,如果有数据抽取、清洗、消重等方面经验

爬虫扒下 bilibili 视频信息

余生颓废 提交于 2020-03-21 18:42:36
B站算是对爬虫非常非常友好的网站啦! 修改转载已取得 腾讯云 授权 在以上两篇文章中我们已经在 腾讯云服务器 上搭建好了 Python 爬虫环境了,下一步就是在云服务器上爬上我们的爬虫,抓取我们想要的数据: [腾讯云的 1001 种玩法] 云服务器搭建 Python 环境 [腾讯云的 1001 种玩法] 云服务器搭建 Python 爬虫环境 今天我们要抓去的目标网站是,国内最大的年轻人潮流文化娱乐社区: 哔哩哔哩 - ( ゜- ゜)つロ 干杯~ - bilibili B 站自建站以来已经收纳了大约六百多万的视频,那么今天我们就写一个爬虫去征服这六百多万条视频信息。 我们想抓取的就是上面的播放次数、评论数量、硬币数量以及收藏数量,接着我们开始。 1 、先分析 首先第一步这些数据在哪里?我们第一个想到的就是在网页源码里面,于是我们查看源码,搜索相关信息。 遗憾的是我们会发现,信息并不在源码中;紧接着我们打开 chrome 开发者工具查看请求信息。 http://api.bilibili.com/archive_stat/stat?callback=jQuery172011470242640208683_1488515896642&aid=8904657&type=jsonp&_=1488515897422 我们可以对以上的 url 进行修剪,删除一些不是必须要的参数。我们先观察这个

Python,除了爬虫工程师,你还能有的方向

蓝咒 提交于 2020-03-21 17:27:10
Python语言有一个特点就是不特别强势,可是它能够使用都非常的多范畴,并且效率高的可怕,Python的使用范畴非常多,现在国内越来越多的人学习Python,从最开始遇到IP被封导致没法正常爬取的爬虫工作,我们可以使用来解决,到现在Python还有什么发展方向呢? 1、Python web全栈工程师 我们都知道,全栈工程师不管在哪个语言中都是人才中的人才,Java全栈工程师的薪资在30K左右,而Python web全栈工程师则会高出20K,所以若是你能力足够,首选就是Python web全栈工程师。 2、Python自动化测试 只要是和自动化有关系的,Python这门语言都可以发挥出巨大的优势,目前做自动化测试的大部分 工作者都需要学习Python帮助提高测试效率,作自动化测试的人都明白,会不会Python是两回事。 3、大数据 我们现在是真正的大数据时代,而Python这门语言在大数据上比Java更加有效率,大数据虽然难学,但是Python可以更好地和大数据对接。 4、数据分析、爬虫 做数据分析的现在也是需要学习Python的,Python可以更快的提升对数据抓取的精准程度和速度,这对于做数据分析的人来说再好不过了,若是你还在用表格的阶段,可以尝试提升一下自己了。 5、自动化运维 根据了解,现在好像没有太多的运维工作者不需求Python,只要还有一点上进心的,想着未来今后的发展

scrapy爬虫框架之理解篇(个人理解)

心已入冬 提交于 2020-03-20 23:50:10
提问: 为什么使用scrapy框架来写爬虫 ? 在python爬虫中:requests + selenium 可以解决目前90%的爬虫需求,难道scrapy 是解决剩下的10%的吗?显然不是。scrapy框架是为了让我们的爬虫更强大、更高效。接下来我们一起学习一下它吧。 1.scrapy 的基础概念:   scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取到数据内容。Scrapy 使用了 Twisted ['twɪstɪd] (其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。 http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html 2. scrapy 的工作流程:     之前我们所写爬虫的流程:    那么 scrapy是如何帮助我们抓取数据的呢? scrapy框架的工作流程:1.首先Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器)。           2.Scheduler(排序,入队) 处理后,经ScrapyEngine