
数据采集
数据分析的初级阶段--数据采集
小獾哥
技术为我赋能
展开
-
使用Python脚本调用JavaScript中的方法
在Python中调用JavaScript方法原创 2024-04-09 15:35:47 · 608 阅读 · 0 评论 -
Scrapy爬虫中使用的最多的50个xpath语法
【代码】xpath插件50个常见用法。原创 2023-11-26 17:19:39 · 446 阅读 · 0 评论 -
nifi 内存溢出解决方案
问题描述: 在使用nifi的SplitJson处理器进行数据处理时,发生了jvm内存溢出。问题原因: nifi默认的jvm内存太小了,调大一些就好了。解决办法:修改jvm内存vim /home/.../nifi-1.9.2/conf/bootstrap.conf内容如下:# JVM memory settingsjava.arg.2=-Xms16gjava.arg.3=-Xmx16g清空缓存数据rm -rf $NIFI_HOME/*repository重启nifi$N原创 2022-02-12 16:36:47 · 2236 阅读 · 3 评论 -
Linux(centos7)系统手动安装pyppeteer + chromium
一、安装 pyppeteer# 不指定websockets版本的话,可能会报错pip install websockets==7.0pip install pyppeteer二、安装 chromium编写一个 test.py 脚本,打印出chromium的版本号,575458就是我的版本号import pyppeteer.chromium_downloader# 这里的 linux 替换成你系统的版本,win32,win64,linux# 这个是返回在当前系统下chromium的路径原创 2020-08-11 16:44:25 · 1761 阅读 · 0 评论 -
scrapy框架配置随机延时、UA、IP
作为强大的采集框架scrapy,有几个基本配置,大家一定要掌握。下面猫哥一一为大家介绍。随机延时在scrapy框架settings.py文件中有一个默认的延时设置DOWNLOAD_DELAY = 2,这个设置的延时时间是固定的,也就是说每次请求的延时时间都是3秒。那么我想让延时时间随机的变动,也就是说假如我设置延时时间是5s,那么我希望每次延时会随机的从1-5s之间选择一个值进行延时。下面我们...原创 2020-04-23 21:36:43 · 4288 阅读 · 0 评论 -
正则表达式基础语法
表达式全集字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置...转载 2018-08-08 23:04:43 · 229 阅读 · 0 评论 -
轻松上手pyppeteer,总结最常用几种操作
我们都知道selenium目前已经停更很长时间了,而且很多网站都已经能够识别selenium了,对于新手来说想要简单的模拟浏览器去采集数据就显得很困难。那么猫哥今天就给大家介绍一款比selenium更好用的浏览器模拟软件pyppeteer。pyppeteer是一位日本工程师根据 Puppeteer 开发出来的非官方版本,而Puppeteer则是由Google开发。具体信息大家可以自行百度一下,猫...原创 2020-03-02 17:27:24 · 5095 阅读 · 2 评论 -
利用pyppeteer自动购买某麦网演唱会门票
此篇文章主要是为了教大家如何使用pyppeteer,切勿用于非法用途,否则后果自负!回归正题!今天猫哥要讲的内容是,利用pyppeteer购买某麦网演唱会门票。作为技术交流,猫哥只实现了基本的功能!实现原理:首先,我们无需破解其登录,直接通过手机扫码进入主页面。其次,通过访问我们的目标网址(也就是,我们想要抢的那场票。例如:抢刘德华的票,那么目标网址就直接定位到刘德华的预定页面)。然后,通过不...原创 2020-03-02 13:03:49 · 1826 阅读 · 0 评论 -
pyppeteer安装后运行时报错如下 urllib3.exceptions.MaxRetryError: HTTPSConnectionPool
报错如下:urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='storage.googleapis.com', port=443): Max retries exceeded with url: /chromium-browser-snapshots/Linux_x64/575458/chrome-linux.zip (Ca...原创 2019-11-13 10:53:10 · 16430 阅读 · 2 评论 -
scrapy中数据采集出现乱码问题(低级错误)
问题:当使用scrapy进行数据采集时,前几个网站都可以正常采集,突然遇到一个网站不管如何改变数据的编解码格式都不管用。原因:很有可能是请求头设置错误。博主我就是在setting中设置了默认的请求头,导致数据解码错误。解决办法:删除setting中的默认请求头或者在当前的采集任务中设置特定的请求头。博主采用的是前者正常结果如下:完毕!...原创 2019-08-13 20:02:42 · 571 阅读 · 0 评论 -
linux下scrapy框架使用selenium报错easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help']
在linux服务器端使用selenium,然后让chrome谷歌浏览器无界面运行。报错如下:easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help']OSError=[Errno 2] No such file or directory: 'Xvfb': 'Xvfb'Program install error!...原创 2019-08-21 18:50:05 · 1943 阅读 · 0 评论 -
python爬虫中用Tesseract识别图形验证码
图形验证码识别技术:阻碍我们爬虫的。有时候正是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被成为光学文字识别(Optical Character Recognition),简写为OCR。实现OCR的库不是很多,特别是开源的。因为这块存在一定的技术壁垒(需要大量的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很高的商业价值...原创 2019-08-22 09:14:37 · 315 阅读 · 0 评论 -
利用python代码处理redis数据库的高并发情况
问题由来:当我们在采集某一个网站的时候,由于url基数太大,想将其用分布式进行爬取,将所有的url放在同一个redis库中,然后利用多个相同的程序同时去取redis库中的url。(也可以直接使用scrapy_redis,博主这里是根据自己的需求重新定义的)# -*- coding: utf-8 -*-import redisimport time# 链接redis数据库redi...原创 2019-08-29 13:29:29 · 735 阅读 · 0 评论 -
测试免费IP或付费IP的可用率,以及提取出有用IP
# coding=utf-8import time, datetimeimport requestsimport jsonimport refrom lxml import etree# 访问芝麻IP的API链接(有则开启)# r = requests.get("http://http.tiqu.alicdns.com/getip3?n**********************...原创 2019-09-19 16:27:54 · 1040 阅读 · 0 评论 -
当使用pyppeteer报出如下错误时pyppeteer.errors.BrowserError: Browser closed unexpectedly
问题:安装好pyppeteer,初次运行时可能会报如下错误pyppeteer.errors.BrowserError: Browser closed unexpectedly:[0924/153706.301300:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not suppo...原创 2019-09-24 15:46:10 · 9691 阅读 · 5 评论 -
docker中安装pyppeteer,解决ImportError: cannot import name 'Deque'问题
问题:在以centos7为基础镜像的docker容器中安装pyppeteer后,报了如下错误>>> import pyppeteerTraceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/pyt...原创 2019-09-25 14:16:48 · 7378 阅读 · 0 评论 -
centos7中启动chrom报错selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome faile
问题:在chentos7中安装了selenium和chrome后启动程序报错:raise exception_class(message, screen, stacktrace)selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abn...原创 2019-07-19 15:04:01 · 20342 阅读 · 6 评论 -
当scrapy爬虫遇到以下报错raise TimeoutError("Getting %s took longer than %s seconds." % (url, timeout))
问题:scrapy爬虫报错:raise TimeoutError("Getting %s took longer than %s seconds." % (url, timeout))解决办法:请检查以下设置是否正确:1.请求方式2.header是否够严密3.随机延时4.代理IP...原创 2019-07-15 16:56:53 · 1498 阅读 · 1 评论 -
python多线程爬虫案例
# coding=utf-8import requestsfrom lxml import etreefrom queue import Queueimport threadingclass NuoMi: def __init__(self): self.temp_url = "https://bj.nuomi.com/326-page{}?#j-so...原创 2018-07-02 22:26:38 · 794 阅读 · 0 评论 -
CentOS7中安装Scrapy以及常用的包
博客链接 https://uublog.com/article/20170308/centos7-install-scrapy/ 讯云这几天搞活动,免费领了三个月的免费VPS。所以想把本地虚拟机的scrapy爬虫迁移上去。Scrapy是基于Python写的。本来是要安装Python的,但是现在Linux基本都默认安装到Python了,所以这步略过。我本地是Ubuntu,服务器我装了Cen...转载 2018-08-07 18:20:02 · 409 阅读 · 0 评论 -
xpath中如何使用变量
xpath (python)xpath中如何使用变量描述:在xpath中该如何使用变量,想选择id是某个值的元素,这个值是个变量。response.xpath('//div[@id=val]').extract_first()其中val的值是'images',xpath中使用变量的语法是什么 。解决方案1:你这个是python语句,为什么不用字符串拼接把这个表达式拼接起来呢...转载 2018-08-15 17:48:20 · 3277 阅读 · 0 评论 -
如何使用正则表达式去除一篇文章两端的多余字符(python爬虫)
原文章格式:text ='''/*<![CDATA[*/(adsbygoogle=window.adsbygoogle||[]).push({});/*]]>*/ Does Neural Imprinting Really Exist? Neural Imprinting sounds like a term that could be used in a science ...原创 2018-11-02 09:52:45 · 1359 阅读 · 0 评论 -
利用正则表达式处理内容数据(Python数据清洗)
本次要处理的是抓取的头条内容,内容如下:content = '''content: '<div><blockquote><p><strong>想要更多科技类资讯,欢迎关注公众号“中研网”</strong></p><...原创 2018-11-08 10:16:46 · 4254 阅读 · 1 评论 -
使用Python实现12306抢票源码详解
在上期文章中我为展示了如何使用我们自己写的12306抢票软件进行抢票快速实现12306抢票软件,在本期文章中我将为大家详细讲解12306抢票软件的源码实现过程。在运行项目前要先安装selenium+chrome(在我之前发布的文章中,已经详细的讲解了这些配置的过程)GitHub上获取源码:https://github.com/Maxwellwk/ticket_grabbing(声明:猫哥在...原创 2018-12-27 22:27:57 · 8823 阅读 · 0 评论 -
利用Python实现12306(直达)换乘抢票源码讲解
上期我给大家分享了一篇12306抢票软件源码详解,有朋友就提出了自己的需求。他说,猫哥你的抢票软件只能抢直达的车票,可是我直达到不了呀,必须要换乘才可以。于是猫哥就在之前源码上做了更改,使其既能抢直达的票,又可以抢换乘的票。GitHub上获取源码:https://github.com/Maxwellwk/ticket_grabbing(声明:猫哥在这里所讲的内容仅供大家学习、参考使用,大家...原创 2018-12-27 22:43:30 · 2195 阅读 · 0 评论 -
利用Python采集电影详细信息(上)
前段时间猫哥给大家讲解了12306换乘抢票。今天猫哥带着大家一起对豆瓣电影(音乐、图书也一样)的详细信息进行一次抓取,我们先打开豆瓣电影的链接https://movie.douban.com/,然后点击选电影,如下图我们对华语电影进行抓取,其他类别的电影以此类推。分析数据来源,判断是否是动态加载。猫哥的判断方法就是看源码,源码中没有数据,就说明是动态加载。方法:右键--->查看网...原创 2019-01-14 09:42:41 · 1928 阅读 · 0 评论 -
利用python采集电影详情信息(下)
上次猫哥讲到了利用Python抓取豆瓣电影详细信息的下半部分,这次猫哥将继续向下讲解,进行更深入的信息抓取。我们上次已经获取到了所有电影的URL链接。得到了每个电影的URL之后,我们就可以逐个的进行请求并获取详细电影数据。从获取的信息我们可以看到,虽然有内容,但是看起来却很乱,接下来我们对提取的内容进行处理。如果你认为这样就已经结束了的话,那可就想多了。我...原创 2019-01-15 13:43:18 · 1273 阅读 · 0 评论 -
解决‘ImportError: No module named '_sqlite3'’
1、第一步yum install sqlite-devel2、第二步cd /usr/local/src/Python3.6.33、第三步./configuremake && make install完毕!原创 2018-11-29 16:54:36 · 501 阅读 · 0 评论 -
在scrapy框架中导入from twisted.enterprise import adbapi 报错
问题:想使用twisted的MySQL异步入库功能,以此来提高爬虫的采集效率,然而在scrapy框架中导入from twisted.enterprise import adbapi 却报错原因:twisted版本不够新解决办法:1.删除twistedpip uninstall Twisted2.重新安装twisted(默认安装最新的)pip install Tw...原创 2019-04-13 16:19:14 · 810 阅读 · 0 评论 -
为华为mate8设置代理IP,以便于fiddler进行抓包
我们在为大部分的安卓机设置代理ip时,一般进行下面这几步就可以搞定:打开WIFI界面,长按已连接的WIFI,点击修改网络 选择“显示高级选项”,选择“手动”代理 输入“服务器主机名”、“服务器端口” 点击保存,或直接退出即可问题:但当我们为华为mate8进行代理ip设置时,却发现第4步的“连接”按钮变成了灰色,直接退出也不行。原因:华为mate8在进行代理ip设置时,需...原创 2019-04-29 21:45:55 · 9467 阅读 · 0 评论 -
使用python3快速将一百以内的中文数字(一二三四...)转换为int类型的数字(1234...)
# 传入中文数字str_num = "二十一"# 一、定义转换字典num_dict = {"一": "1", "二": "2", "三": "3", "四": "4", "五": "5", "六": "6", "七": "7", "八": "8", "九": "9", "十": ""}# 将中文的数字替换成阿拉伯数字# 针对不同的情况进行判断和字典的更改if str_num[0] =...原创 2019-05-26 14:45:54 · 5758 阅读 · 2 评论 -
解决scrapy框架下使用Twisted模块将数据异步的添加到mysql中数据重复问题
问题:在使用Twisted模块将数据异步的添加到mysql中时出现了大量的重复数据,但前提是采集的数据没有重复。原因:由于scrapy自己本身就是异步执行的,它的爬取速度远大于其入库的速度。就算我们采用了异步入库但还是没有采集的速度快。解决办法:在入库前将item数据deepcopy一下,copy一份出来。这样在pipelines中每次处理的都是独立的一份item,互不冲突。我...原创 2019-06-12 21:04:01 · 670 阅读 · 0 评论 -
解决scrapy框架下数据采集遗漏问题
解决办法:在settings中添加下面的一行代码即可# 解决爬取遗漏问题AUTOTHROTTLE_ENABLED = True另外在你的spiders中添加dont_filter=True,让你请求的url不参与去重!原因:采集速度过快,采用scrapy的自动限速加以控制。完毕!...原创 2019-06-13 09:20:51 · 2861 阅读 · 3 评论 -
关闭由Sublime Text开启的程序
问题:由Sublime Text开启的程序居然没有找到可以关闭的快捷键,每次想中途停止的时候,就只能静静的看着它跑完!然而无意间,猫哥发现了一个可以关闭的办法!解决办法:如上图所示,当我们的程序运行的时候,Tools > Cancel Build是可以点击的。我们只需轻轻的一按,程序便停止了,是不是很简单。注:如果按了Ctrl+B,程序只会重新运行,不会停止。“真是妙啊!...原创 2019-06-27 19:45:49 · 1001 阅读 · 0 评论 -
python爬虫_百度翻译
# coding=utf-8import requestsimport jsonimport sysclass BaiduFanyi: def __init__(self, query_string): self.query_string = query_string self.post_url = "http://fanyi.baidu.com...原创 2018-07-02 22:19:23 · 516 阅读 · 0 评论