Python爬虫
I天辉I
专注于Python相关的量化投资
展开
-
爬虫必备工具,掌握它就解决了一半的问题
每个网站抓取的代码各不相同,不过背后的原理是相通的。对于绝大部分网站来说,抓取的套路就那么一些。今天这篇文章不谈任何具体网站的抓取,只来说一个共性的东西:如何通过Chrome 开发者工具寻找一个网站上特定数据的抓取方式。(我这里演示的是 Mac 上的英文版 Chrome,Windows 中文版的使用方法是一样的。)> 查看网页源代码在网页上右击鼠标,选择“查看网页源代码”(...转载 2019-04-02 22:22:58 · 363 阅读 · 1 评论 -
$.ajax()方法详解
query中的ajax方法参数总是记不住,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$...转载 2018-04-11 16:35:04 · 202 阅读 · 0 评论 -
如何应对网站反爬虫策略?如何高效地爬大量数据?
作者:申玉宝链接:https://www.zhihu.com/question/28168585/answer/74840535来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider),这之间的斗争恢宏壮阔...Day 1小莫想要某站上所有的电影,写了标准的爬虫(基于HttpC...转载 2018-03-28 10:27:25 · 1246 阅读 · 1 评论 -
Python爬虫技巧---设置代理IP
在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,这里讲述一个爬虫技巧,设置代理IP。(一)配置环境安装requests库安装bs4库安装lxml库(二)代码展示# IP地址取自国内髙匿代理IP网站:http://www.xicidaili.com/nn/# 仅仅爬取...转载 2018-03-27 16:10:24 · 1246 阅读 · 2 评论 -
爬虫与反爬虫大战
爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家?重新理解爬虫中的一些概念爬虫:自动获取网站数据的程序反爬虫:使用技术手段防止爬虫程序爬取数据误伤:反爬虫技术将普通用户识别为爬虫,这种情况多出现在封ip中,例如学校网络、小区网络再或者网络网络都是共享一个公共ip,这个时候如果是封ip就会导致很多正常访问的用户也无法获取到数据。所以相对来说封ip的策略不是特别好,通常都...转载 2018-03-27 14:56:39 · 474 阅读 · 0 评论 -
1-新浪微博爬虫-(2017-05-09)
1 爬用户的信息1-1 哪里找cookies1-2 哪里找用户信息2 爬用户发过的所有博客2-1哪里找url入口2-2怎么得到博客数据3 主函数4 所有代码1、 爬用户的信息headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...转载 2018-03-14 15:59:47 · 565 阅读 · 0 评论 -
FireBug 使用方法 详解!
什么是Firebug从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表展示每个页面模块;要调试javascript给页面增加一些更活泼的要素;要使用Ajax给用户带来更好的体验。一个优秀的WEB开发人员需要顾及更多层面,才能交出一份同样优秀的作业。为帮助广大正处于Web2.0洪流中的开发人员,在这里为大家介绍一款轻巧灵活的辅助开...转载 2018-03-14 14:07:05 · 310 阅读 · 0 评论 -
正则表达式匹配任意字符
最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n查了下资料,用[\s\S]*匹配可以 解释:\s空白符,\S非空白符,所以[\s\S]是任意字符...转载 2018-03-06 16:44:08 · 612 阅读 · 0 评论 -
Python2.7如何从包含汉字和数字的字符串中截取数字
今天有一个小伙伴想要从“498人”这个字符串里截取数字出来,我脑子里虽然飘过不少方法,但是觉得不码出来就等于是空的。网上找了些资料,总结出了一些干货,在此记录下来。首先先看一个字符串:mystring = u'今年18岁'1这个字符串有汉字还有数字,现在我们要提取出其中的数字,或许我们马上就会想到一种方法:切片。 的确,切片的确可以简单粗暴的解决一些事情,比如这个字符串,从第三位到倒数第二位就是数...转载 2018-03-19 13:49:18 · 3974 阅读 · 0 评论 -
python 爬虫爬取内容时, \xa0 、 \u3000 的含义
最近用 scrapy 爬某网站,发现拿到的内容里面含有 \xa0 、 \u3000 这样的字符,起初还以为是编码不对,搜了一下才知道是见识太少 233 。\xa0 是不间断空白符  我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(no...转载 2018-03-06 10:41:21 · 3058 阅读 · 0 评论 -
使用Beautifulsoup去除特定标签
试用了Beautifulsoup,的确是个神器。 在抓取到网页时,会出现很多不想要的内容,例如<script>标签,利用beautifulsoup可以很容易去掉。-> soup = BeautifulSoup('<script>a</script>Hello World!<script>b</script>') -> [s.e...转载 2018-03-13 11:14:40 · 5752 阅读 · 0 评论 -
python使用re进行字符串查找和替换
函数说明re.match(pat, s)只从字符串s的头开始匹配,比如(‘123’, ‘12345’)匹配上了,而(‘123’,’01234’)就是没有匹配上,没有匹配上返回None,匹配上返回matchobjectre.search(pat, s)从字符串s的任意位置都进行匹配,比如(‘123’,’01234’)就是匹配上了,只要s只能存在符合pat的连续字符串就算匹配上了,没有匹配上返回Non...转载 2018-03-05 15:03:09 · 2554 阅读 · 0 评论 -
BeautifulSoup 提取某个tag标签里面的内容
用的版本是BeautifulSoup4,用起来的确要比 re 好用一些,不用一个个的去写正则表达式,这样还是挺方便的。比如我要获取高匿代理IP页面上的IP和端口,网址这里:点击打开链接,它的组织方式是这样的,如下图:IP和端口 tr.td 标签里面,tr有class属性,属性有两种情况的值,对于这点我们可以用正则表达式来匹配下。当提取某一个标签里的具体内容时,可以用bs的 .string属性,注意...转载 2018-03-05 14:18:46 · 11812 阅读 · 2 评论 -
python requests 图片保存以及--踩的坑
在python 中获取网页中的图片,保存到本地。例子:html = requests.get('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1490350083846&di=01e5ca0ce5499719c43f5d1e9f75d8c9&imgtype=0&...转载 2018-04-17 13:44:19 · 1322 阅读 · 0 评论 -
Python-第三方库requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦!Beautiful is bet...转载 2018-05-09 00:45:36 · 257 阅读 · 0 评论 -
chrome和Firefox浏览器http抓包
一、chrome浏览器抓包谷歌浏览器chrome自带的http抓包工具打开方式:点击chrome浏览器右上角的菜单-->工具-->开发者工具。(或者Ctrl+shift+I)工具打开之后默认就是监测状态,点击工具左上方的小红点record network log,可以记录下整个访问过程中所有抓包结果,否则只记录当前页面的抓包结果,用于记录存在跳转页面的抓包时该项非常有用。清除抓包...转载 2019-04-02 22:21:25 · 774 阅读 · 0 评论 -
Selenium-免登录的实现
场景: 经常会遇到登录需要验证码这样类似的情况解决方案: 1.万能验证码 2.利用cookies来实现,问开发哪个cookies值是登录后需要的,把这个值带上即可 3.利用火狐浏览器的profile文件来实现(首先需要手工登录一次,且勾选记住信息) 4.手工输入(需要输入的地方sleep一会)实例一: 利用cookies登录百度帐号 1\获取到...转载 2019-04-02 21:30:30 · 704 阅读 · 0 评论 -
selenium模拟登录京东
from selenium import webdriverimport timefrom lxml import etreeimport requests# import ssl## ssl._create_unverified_context()# selenium抓到cookie,再用request# selenium解决验证码模拟登录不需要解决加密问题# request,...转载 2019-04-02 21:23:37 · 2224 阅读 · 1 评论 -
'chromedriver' executable needs to be in Path
声明:本人萌新,刚学python不久记录一下自己的坑,发出来若能帮助到一些人尽早解决问题那便是极好的,( ̄▽ ̄)"在进行爬虫爬取淘宝商品信息时候,利用selenium来模拟浏览器进行爬取时遇到了这个问题: selenium.common.exception.WebDriverException:Message:'chromedriver' executable needs to be ...转载 2019-04-02 21:15:46 · 557 阅读 · 0 评论 -
关于selenium3,““selenium.common.exceptions.WebDriverException: Message: 'geckodriver'
“selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.”先来看这个错误的具体问题,找不到’geckodriver’ 的环境path,selenium3.x开始,webdriver/firefox/webdriver.py的init中,execu...转载 2019-04-02 20:52:16 · 180 阅读 · 0 评论 -
selenium+python 自动化测试,下载文件过程中出现对话框问题的处理
近来,学习selenium ,下载文件过程中,浏览器会弹出对话框。遇到这种情况,笔者综合网上的教程,写出注意事项。笔者的环境是:win 7 64位 +python 3.6 +Firefox 50.0.1 +selenium3.0.2第一步:需要下载某个文件,例如下载网站http://vdisk.weibo.com/s/qEoGTwdUACbMy 的文档。第二步:修改Firefox的相...转载 2019-04-05 10:56:25 · 1061 阅读 · 0 评论 -
selenium下载文件
一、Firefox文件下载Web容许我们设置默认的文件下载路劲,文件会自动下载并且存放在指定的目录下。from selenium import webdriverimport osfp = webdriver.FirefoxProfile()fp.set_preference("browser.download.folderList",0)fp.set_preference("brow...转载 2019-04-04 10:17:56 · 1473 阅读 · 0 评论 -
Python 爬虫 selenium 打开新窗口 和 多窗口切换
转载自:https://blog.csdn.net/mouday/article/details/81240257使用 js 代码实例:# -*- coding: utf-8 -*-import timefrom selenium import webdriverbrowser = webdriver.Chrome()# 在当前浏览器中访问百度browser.get('htt...转载 2019-04-04 10:13:04 · 679 阅读 · 0 评论 -
Python爬虫 获得淘宝商品评论
自从写了第一个sina爬虫,便一发不可收拾。进入淘宝评论爬虫正题: 在做这个的时候,也没有深思到底爬取商品评论有什么用,后来,爬下来了数据。觉得这些数据可以用于帮助分析商品的评论,从而为用户选择商品提供一定的可参考数据。 找评论所在真实url:有了前面爬搜狗图片的经验,面对找资料的url这件事,找他的速度是比第一次快了不少。首先进宝贝页面,如图 发现评论与搜狗图...转载 2018-07-20 15:51:29 · 2000 阅读 · 1 评论 -
python淘宝爬虫基于requests抓取淘宝商品数据
在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习。废话不多说了,直接正题。requests 是Python的http库,可以完成绝大部分与http应用相关的工作,当然对一些常规的数据抓取还是很方便。 详细看手册: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html比...转载 2018-05-07 14:23:19 · 2096 阅读 · 0 评论 -
python正则之模式re.I re.M
re.I 忽略大小写>>> re.match(r"A","abc",re.I)<_sre.SRE_Match object at 0x0000000001F1A510>re.M,将所有行的尾字母输出 multiple原创 2018-05-07 13:37:03 · 11792 阅读 · 0 评论 -
Python爬取淘宝商品详情页数据
在讲爬取淘宝详情页数据之前,先来介绍一款 Chrome 插件:Toggle JavaScript (它可以选择让网页是否显示 js 动态加载的内容),如下图所示:当这个插件处于关闭状态时,待爬取的页面显示的数据如下:当这个插件处于打开状态时,待爬取的页面显示的数据如下: 可以看到,页面上很多数据都不显示了,比如商品价格变成了划线价格,而且累计评论也变成了0,说明这些数据都是动态加载的,以下演示真...转载 2018-05-09 00:57:53 · 4292 阅读 · 2 评论 -
python用正则表达式提取中文
Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符>>> import re>>> s='中文:123456aa哈哈哈bbcc'.decode...转载 2018-03-12 13:55:56 · 40271 阅读 · 3 评论 -
关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup
读者可能会奇怪我标题怎么理成这个鬼样子,主要是单单写 lxml 与 bs4 这两个 py 模块名可能并不能一下引起大众的注意,一般讲到网页解析技术,提到的关键词更多的是 BeautifulSoup 和 xpath ,而它们各自所在的模块(python 中是叫做模块,但其他平台下更多地是称作库),很少被拿到明面上来谈论。下面我将从效率、复杂度等多个角度来对比 xpath 与 beautifulsou...转载 2018-03-16 18:17:41 · 792 阅读 · 0 评论 -
零基础自学用Python 3开发网络爬虫(一)
点击进入本系列目录由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照自己爱好来点技能吧, 于是我就不去了. 一个人在宿舍没有点计划好的事情做就会很容易虚度, 正好这个学期主打网络与数据库开发, 那就先学学Python开发爬虫吧. 我失散多年的好朋友Jay Loong突然说他会爬虫了, 我感到真棒, 我也转载 2017-03-28 10:58:14 · 725 阅读 · 0 评论 -
零基础自学用Python 3开发网络爬虫(二): 用到的数据结构简介以及爬虫Ver1.0 alpha
点击进入本系列目录上一回, 我学会了用伪代码写出爬虫的主要框架;用Python的urllib.request库抓取指定url的页面;用Python的urllib.parse库对普通字符串转符合url的字符串.这一回, 开始用Python将伪代码中的所有部分实现. 由于文章的标题就是"零基础", 因此会先把用到的两种数据结构队列和集合介绍一下. 而对于"正则表达式"部分, 限于篇幅不转载 2017-03-28 10:59:24 · 862 阅读 · 0 评论 -
零基础自学用Python 3开发网络爬虫(三): 伪装浏览器君
点击进入本系列目录上一次我自学爬虫的时候, 写了一个简陋的勉强能运行的爬虫alpha. alpha版有很多问题. 比如一个网站上不了, 爬虫却一直在等待连接返回response, 不知道超时跳过; 或者有的网站专门拦截爬虫程序, 我们的爬虫也不会伪装自己成为浏览器正规部队; 并且抓取的内容没有保存到本地, 没有什么作用. 这次我们一个个解决这些小问题.此外, 在我写这系列文章的第二篇的时候转载 2017-03-28 13:27:11 · 599 阅读 · 0 评论 -
零基础自学用Python 3开发网络爬虫(四): 登录
点击进入本系列目录今天的工作很有意思, 我们用 Python 来登录网站, 用Cookies记录登录信息, 然后就可以抓取登录之后才能看到的信息. 今天我们拿知乎网来做示范. 为什么是知乎? 这个很难解释, 但是肯定的是知乎这么大这么成功的网站完全不用我来帮他打广告. 知乎网的登录比较简单, 传输的时候没有对用户名和密码加密, 却又不失代表性, 有一个必须从主页跳转登录的过程.不得不说转载 2017-03-28 14:45:05 · 982 阅读 · 0 评论 -
零基础自学用Python 3开发网络爬虫(五): 使用第三方模块快速抓取与解析
点击进入本系列目录在前面的四篇文章中, 我们一直采用 python 3 自带的 urllib 模块来抓取网页, 然后用 re 模块来处理抓取到的数据. 这次我们使用 Requests 库来代替 urllib, 用 BeautifulSoup 来代替 re 模块.对于这两个模块来说, 学习使用它们的最好方法是看官方文档, 这两个模块的官方文档都有中文版(翻译的不是很完整).Requ转载 2017-03-28 15:27:18 · 1724 阅读 · 0 评论 -
Python爬虫入门三之Urllib库的基本使用
那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧。1.分分钟扒一个网页下来怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我们就写转载 2017-03-29 11:14:04 · 390 阅读 · 0 评论 -
Python爬虫入门六之Cookie的使用
大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取转载 2017-03-29 13:37:30 · 439 阅读 · 0 评论 -
Python爬虫入门一之综述
大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验。Python版本:2.7,Python 3请另寻其他博文。首先爬虫是什么?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万转载 2017-03-29 10:52:34 · 407 阅读 · 0 评论 -
Python爬虫入门二之爬虫基础了解
1.什么是爬虫爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。2.浏转载 2017-03-29 10:55:49 · 357 阅读 · 0 评论 -
Python爬虫入门(4):Urllib库的高级用法
1.设置Headers有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。首先,打开我们的浏览器,调试浏览器F12,我用的是Chrome,打开网络监听,示意如下,比如知乎,点登录之后,我们会发现登陆之后界面都变化 了,出现一个新的界面,实质上这个页面包含了许许多多的内容,这些内容也不是一次转载 2017-03-29 13:18:06 · 463 阅读 · 0 评论 -
Python爬虫入门(5):URLError异常处理
大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理。1.URLError首先解释下URLError可能产生的原因:网络无连接,即本机无法上网连接不到特定的服务器服务器不存在在代码中,我们需要用try-except语句来包围并捕获相应的异常。下面是一个例子,先感受下它的风骚Pythonimport urllib2转载 2017-03-29 13:19:35 · 368 阅读 · 0 评论