爬虫
spider_fu
这个作者很懒,什么都没留下…
展开
-
反爬终极思路
**反爬终极思路**现在的反爬机制大多从限制ip,限制登陆(各种登录验证),访问频率(速度过快,出现人机验证等),以及携带签名等方式。但由于太严格的限制会误伤真实的用户,因此无法从根本防止数据被获取。最近做的一些爬虫中,发现了一些问题,有了一些新思路。首先反爬首先需要明确两个问题:1、爬虫是如何抓取数据的?2、如何阻止爬虫获取数据?爬虫获取数据无非是将网页上显示的内容获取下来,那么只要不显示或者说显示不完整,就永远可以防止数据被抓去。这里举个例子:假设我们有一万条数据需要展示(其中两千条数据属原创 2021-04-28 11:52:03 · 162 阅读 · 0 评论 -
爬虫之爬取Boss直聘
爬取Boss直聘主要有以下难点:在不登陆的情况下最多爬十页就会出现手动打码验证出现大概五六次手动打码后就会封禁ip地址,封禁1天的时间解决办法1、切换ip这里我尝试过很多收费代理,免费代理,几乎都骗不过去,建议不要用。可以采用连接手机wifi的方式,手机开热点,当封禁ip时将手机调成飞行模式,再关掉。这时会给你重新分配一个ip地址,就可以继续了。2、登录当你爬取的数据很多时,不可能一直看着开飞行模式,太浪费时间,因此可以采取登录的方式。登录获取cookies在网页登录账号,拿到coo原创 2020-12-09 16:09:20 · 9754 阅读 · 3 评论 -
爬虫网页分析前去除script等节点
当我们有时候在爬取新闻等需要全部文本内容时,例如通常会使用xpath下面的“//text()"来获取节点下全部文本,但是有的节点,比如script下的文本是我们不需要的,所以需要将这些节点在分析前就去除掉。from random import randintimport pymysqlfrom lxml import htmlimport html as htr = requests.get(url, verify=False, timeout=60, headers={原创 2020-11-18 17:04:09 · 771 阅读 · 0 评论 -
模拟发请求的方式抓取网页数据(接口爬虫)
在做爬虫时经常会发现有些网站不能通过拼接的方式获取地址,例如在该网站中,无论怎么翻页,网址都是不会变化的,没有页数的参数。一般这种情况下都是会采用模拟浏览器的方式,模拟翻页,这是可以实现的,但是存在一些问题:1、模拟浏览器速度上会受影响,浏览器很容易会出现bug挂掉2、我们不知道需要模拟翻页多少次这个时候就可以查看网页使用什么样的请求获取到的数据,那我们采用一样的请求方式就可以获取到数据了。点击F12打开编程模式,如果下面有内容就点一下clear清空一下然后点击翻页,右边就会显示发起的请求,原创 2020-11-18 16:44:43 · 1821 阅读 · 0 评论 -
requests爬虫之常见错误
证书过期,超时等错误加header,证书认证跳过,设置timeout时间r = requests.get(url, verify=False, timeout=60, headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'})获取的结果乱码原创 2020-11-18 16:18:45 · 477 阅读 · 0 评论 -
WebDriverException: Message: ‘chromedriver‘ executable may have wrong permissions.
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home关于selenium的踩坑出现这种问题,一般四种情况1、没装chromedriver直接安装,百度搜索,很多安装包,这里给一个吧,点击http://原创 2020-09-20 19:13:22 · 3969 阅读 · 4 评论 -
微博粉丝走势监控-数据处理
数据处理这里主要说一下处理超话的那些文字,主要采用正则爬取下来的数据分为两个部分1、排名2、阅读,帖子,粉丝排名排名,不管是是什么排名都是“XX榜No.xx",如果想要完整的,就直接不处理,毕竟榜单都不一样,留着也不错,我本人就没处理,如果只想要排名import rerank = re.match('.*榜No\.(\d*)', text).group(1)text为爬取的文本,即“XX榜No.xx",rank为排名具体数字阅读,帖子,粉丝因为这三个部分写在了一起,可以同时提取出来原创 2020-07-31 14:46:52 · 561 阅读 · 0 评论 -
微博粉丝走势监控-爬虫
爬虫任务:爬取粉丝数量,超话粉丝,阅读量,排名,帖子数量由此可见主要需要两个网址,一个是微博主页,一个是超话主页爬取个人比较喜欢模拟浏览器爬取,以前有文章写过,不过这里并不是非要模拟浏览器。爬取建议大家用手机端的网址(网页结构比较简单)网址是:https://m.weibo.cn爬取主页进入到要爬取人的主页:在搜索框输入,然后查找这个粉丝数量就是我们要获取的目标F12进入开发者模式,点击小箭头,点击粉丝数可以看到对应的位置右键点击span标签,复制selector即可获取到粉丝数原创 2020-07-31 14:34:06 · 713 阅读 · 0 评论 -
关于selenium模拟浏览器的一些坑(quit,close)
在写爬虫时会经常因为加载js等一些问题,不得不使用selenium模拟浏览器登陆,有的时候会打开多个浏览器,就会导致电脑变卡,内存不够,直接导致程序终止。这里我以前的文章中说过可以用特定端口打开浏览器,有兴趣的可以去看看,这次主要是说quit和close如果打开了,能及时关闭,也不会影响到什么,因此,这就用到了这两个方法。首先看一下这两个函数的描述。 def quit(self): """ Closes the browser and shuts down the原创 2020-07-10 15:27:20 · 2891 阅读 · 0 评论 -
定时爬虫(续)
在上一篇博客中提到了两种定时的方法:1、使用time.sleep直接做延时处理。缺点:存在时间的偏移,即运行爬虫所用的时间;2、使用crontab来定时。比较好的方法。可以设置日志,随时查看是否出现问题。上一篇博客地址:定时爬虫1这一次主要对上次的第二种方法做一个补充,以及介绍一些其他的方法。crontab定时在上一次中采用了写sh文件,在定时任务中定时调用脚本文件的方式。其实,这里也是可以直接在定时任务中执行爬虫,而不需要通过脚本二次调用。需要之一的一点是:这里必需有一步切换目录的命令原创 2020-05-11 11:27:40 · 306 阅读 · 0 评论 -
用python将表情插入mysql数据库
数据库中可以使用utf8mb4格式来保存表情如果使用navicat,可以直接在建表时将表的格式定义为utf8mb4或者可以将想要保存表情的字段设置为utf8mb4注意在代码中,连接数据库时也一定要设置相应的格式conn = MySQLdb.connect('127.0.0.1', 'user', 'password', 'db_name', charset="utf8mb4", use_...原创 2019-11-24 11:38:57 · 642 阅读 · 0 评论 -
解决爬取京东商品时只显示前30个商品的问题
京东商品一页有60个商品,但用爬虫获取网址时,却发现只能获取前30条,分享一下我的解决方法本文需要的工具(chrome,chromedriver,pycharm)出现这个问题的原因是,打开页面时,后30个商品并没有加载出来,只需要向下滑动,后面的内容就会加载出来通过selenium模拟浏览器打开网址,然后模拟下滑,就可以获得所有的商品链接webdriver.execute_script("...原创 2019-11-21 22:46:08 · 2747 阅读 · 2 评论 -
解决selenium模拟浏览器爬取(淘宝、微博等需要登陆验证的网站)多次登陆问题
在爬取淘宝等需要登陆的网站时,模拟点击打开新的页面往往需要重新登陆,这时可以通过采用本地打开一个浏览器,设置监听端口,在该端口下模拟浏览器,这样浏览器会记住所有的用户行为,只要登陆过一次就不必重复登录。(本文采用chrome,chromedriver,pycharm工具)首先,需要找到浏览器的位置,右键点击chrome.exe图标,选择属性,将地址复制下来用cmd命令打开命令提示符,切换到上...原创 2019-11-21 22:29:27 · 4519 阅读 · 8 评论 -
续(python实现网站中文件批量下载,实现在excel中超链接跳转打开下载的指定文件)
接着上次的内容,实现如何区分文件名与实际不符的文件(比如”+“变成空格的问题)。上次文章的链接在下载文件时网页上显示的文件名称和实际下载文件名称不符网页显示的文件名称实际下载的文件名称这里可以看到,实际名称中的加号在网页中变成了空格。这种情况需要获取真正的文件名。可以先正常下载,然后获取文件的名称。import os# path为保存文件的文件夹os.listdir(path)...原创 2019-11-17 19:02:22 · 1210 阅读 · 0 评论 -
python实现网站中文件批量下载,实现在excel中超链接跳转打开下载的指定文件
网站中文件批量下载,实现在excel中超链接跳转打开下载的指定文件前言文件的批量下载数据库的保存与导出生成超链接存在的问题(未完待续)前言我们有的时候需要批量下载一个网站下的很多个页面的文件(例如附件等),并在excel中保存其相对路径,实现超链接单击打开。这篇文章阐述了如何实现该过程,以及可能遇到的一些问题。文件的批量下载在这里,采用模拟浏览器的方式进行下载。如何模拟浏览器,就不再赘述...原创 2019-11-17 12:34:44 · 4233 阅读 · 0 评论