- 博客(104)
- 资源 (14)
- 收藏
- 关注
原创 re匹配中文格式的字符
>>> import re>>>> s ='wo我爱sjl上学吧hfks'>>> res = re.findall(r'([\u2E80-\u9FFF]+)', s)>>> res['我爱', '上学吧']
2019-05-13 10:21:47
1713
原创 容器数据卷
1.docker运行关闭后的实现数据持久化:用容器数据卷保存2.容器之间共享信息:用容器数据卷保存3.卷中的更改可以直接生效4.数据卷中的更改不会包含在image的更新中5.数据卷中的生产周期一直持续到没有容器使用他为止6.容器与宿主机可以共享交互数据。容器内添加:1.命令添加:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名示例:在...
2019-05-03 19:52:41
420
原创 docker容器命令
新建并启动容器:docker run [ 启动方式] image交互启动方式(返回对话窗口或命令行终端):docker run -it --name 新起的容器名字 IMAGE_ID以tomcat为例子:指定端口:前台方式:docker run -it -p 8888[把docker暴露的端口设置为8888]:8080[容器默认的暴露的端口]--name 新起的容器名字 tomc...
2019-05-03 18:00:37
673
原创 docker镜像命令
docker images -a:列出镜像的所有层;docker images -q:列出镜像的imageID;docker images -qa:列出镜像的所有层的imageID;(可以用于批处理删除);docker images --digest:列出镜像的摘要信息;docker search tomcat:dockerhub上查找某个镜像比如tomcat;docker p...
2019-05-03 16:37:54
300
转载 scrapy_redis 和 docker 实现简单分布式爬虫
简介在使用 scrapy 爬取 IT桔子公司信息,用来进行分析,了解 IT 创业公司的一切情况,之前使用 scrapy 写了一个默认线程是10的单个实例,为了防止被 ban IP 设置了下载的速度,3万多个公司信息爬了1天多才完成,现在想到使用分布式爬虫来提高效率。源码githup技术工具:Python3.5 scrapy scrapy_redis redis docker1.12 d...
2019-04-28 16:09:42
722
原创 多进程抓取猫眼电影top100
import jsonfrom multiprocessing import Poolimport requestsfrom requests.exceptions import RequestExceptionimport re#构造函数,输入一个url网址,发送请求后返回该网址的响应结果def get_one_page(url): try: respo...
2019-04-11 17:21:22
346
原创 抓取阿里云产品明细
import reimport csvfrom fake_useragent import UserAgentfrom urllib.request import Request,urlopen# 4种产品,16个地区,td的结构是:[产品_地区1--高可用版--金融版--基础版--]-[产品_地区2--高可用版--金融版--基础版-]-[产品_地区3-高可用版--金融版---基础版-...
2019-04-11 17:06:27
295
原创 链家二手房信息抓取
spider如下:# -*- coding: utf-8 -*-import scrapyclass LianjiaSpider(scrapy.Spider): name = 'lianjia' allowed_domains = ['lianjia.com'] start_urls = ['https://bj.lianjia.com/ershoufang/...
2019-04-11 09:36:47
415
原创 51job网站抓取所有的nlp职位信息
spider如下:# -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Ruleclass JobSpider(CrawlSpider): name = 'job' all...
2019-04-11 09:32:33
310
原创 提取亚马逊所有的商品类目与对应的url,保持层级关系
spider文件如下:# -*- coding: utf-8 -*-import scrapyimport reclass GoodsclassnameUrlSpider(scrapy.Spider): name = 'GoodsClassName_Url' allowed_domains = ['amazon.com'] start_urls = ['htt...
2019-04-11 09:17:47
3564
原创 高校项目
spider文件如下:import scrapyimport refrom Gaoxiao.items import GaoxiaoItemclass GaoxiaoSpider(scrapy.Spider): name = 'gaoxiao' allowed_domains = ['in985.com'] start_urls = [['https://w...
2019-04-10 11:02:00
376
原创 DEPTH_PRIORITY实现深度优先爬取
DEPTH_PRIORITY默认: 0范围: scrapy.spidermiddlewares.depth.DepthMiddleware用于根据深度调整请求优先级的整数:如果为零(默认),则不从深度进行优先级调整正值将降低优先级,即,较高深度请求将被稍后处理 ; 这通常用于做广度优先爬网(BFO)负值将增加优先级,即,较高深度请求将被更快地处理(DFO)...
2019-03-25 14:39:27
1333
原创 多进程爬虫效果展示
import requestsimport reimport timefrom multiprocessing import Poolheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 ...
2019-03-21 16:21:43
277
原创 Scrapy-redis实现分布式
scrapy-redi重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。scrapy-redis工程的主体还是是redis和scrapy两个库,工程本身实现的东西不是很多,这个工程就像胶水一样,把这两个插件粘结了起来。scrapy-redis所实现的两种分布式:爬虫分布式以及item处理分布式。分别是由模块scheduler和模块pipeli...
2019-03-18 11:15:28
314
原创 list保存到scv
import csvdatas = [['俄罗斯', '1707'], ['加拿大', 997], ['中国', 960,111], ['美国', '936']]with open('country.csv', 'w') as csvfile: writer = csv.writer(csvfile) for row ...
2019-03-13 18:10:33
720
原创 re.complie()方法中嵌套的括号
s = "adfad asdfasdf asdfas asdfawef asd adsfas " 规则一:当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。如下面两个例子。reObj1 = re.compile('((\w+)(\s)(\w+))') #带...
2019-03-13 11:01:04
1782
原创 str去除全部空格
4:replace()方法,可以去除全部空格# replace主要用于字符串的替换replace(old, new, count)>>> a = " a b c ">>> a.replace(" ", "")'abc'5: join()方法+split()方法,可以去除全部空格# join为字符字符串合成传入一个字符串列表,split..
2019-03-11 19:10:29
1628
原创 Python编码转换:\u5168\u7403\u7ecf\u5178IT\u6570\u7801\u6392\u884c\u699c
decode("unicode_escape")print u'\u5168\u7403\u7ecf\u5178IT\u6570\u7801\u6392\u884c\u699c'.encode('utf-8')
2019-03-11 14:18:40
4311
原创 selenium爬取某家生活分类平台
from selenium import webdriverimport pickleimport requestsfrom lxml import etreefrom fake_useragent import UserAgentbase_url='https://passport.58.com/login/'browser = webdriver.Firefox()brows...
2019-03-06 17:19:16
200
原创 selenium无头模式
from selenium import webdriverfrom selenium.webdriver.firefox.options import Optionsoptions = Options()options.add_argument('-headless')options.add_argument('--disable-gpu') # 禁用GPU加速options....
2019-03-04 11:37:54
3876
原创 selenium爬取某生活分类网站点击事件后弹出的信息
from selenium import webdriverimport pickleurl='https://bj.58.com/zhuanye/37291869116169x.shtml?'base_url='https://passport.58.com/login/'browser=webdriver.Firefox()browser.get(base_url)brow...
2019-03-02 19:08:57
604
原创 解决Selenium弹出新页面无法定位元素问题(Unable to locate element)
coding=utf-8 from selenium import webdriverimport timebrowser=webdriver.Firefox() browser.get("http://cn.bing.com/")keywords = 'MrLevo520 优快云' send_keywords=keywords.decode('utf-8')#中英混输入可防止乱码...
2019-02-27 11:30:02
3933
原创 使用selenium webdriver从隐藏元素中获取文本
由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'), 通过textContent, innerText, innerHTML等属性获取。innerHTML 会返回元素的内部...
2019-02-26 16:33:45
1700
原创 Selenium中单击Element:ElementClickInterceptedException
方法一:element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')driver.execute_script("arguments[0].click();", element)方法二:element = driver.find_element_by_css('div[class*="loadingWhi...
2019-02-24 19:01:33
30285
4
原创 setting里的USER_AGENT和DownloaderMiddleware里的useragent的区别
setting里的USER_AGENT是全局的变量,分配给spider的,美运行一次就分配一次,spider里的所有的request必须共享。DownloaderMiddleware里的useragent是分配给每一个request的,可以覆盖前者。...
2019-02-23 12:40:17
323
原创 scrapy+selenium boss直聘爬虫案例分析
概述本文主要介绍scrapy架构图、组建、工作流程,以及结合selenium boss直聘爬虫案例分析架构图组件Scrapy 引擎(Engine)引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件.调度器(Scheduler)调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎.下载器(Downloader)...
2019-02-22 20:29:31
3043
原创 scrapy结合selenium进行动态加载页面内容爬取
动态页面与静态页面比较常见的页面形式可以分为两种:静态页面 动态页面静态页面和动态页面的区别使用requests进行数据获取的时候一般使用的是respond.text来获取网页源码,然后通过正则表达式提取出需要的内容。例如:import requestsresponse = requests.get('https://www.baidu.com'...
2019-02-22 19:53:10
1939
2
原创 firfox无头模式禁止加载图片
from selenium import webdriveroptions=webdriver.FirefoxProfile()或者是webdriver.FirefoxOptions()options.set_preference(‘permissions.default.image’,2)#禁止加载图片b=webdriver.Firefox(options)b.get(‘http://i...
2019-02-21 13:53:46
967
原创 php-fpm配置详解
pid = /usr/local/var/run/php-fpm.pid #pid设置,一定要开启,上面是Mac平台的。默认在php安装目录中的var/run/php-fpm.pid。比如centos的在: /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/var/log/php-fpm.log #错误日志,上面是Mac...
2019-02-18 16:13:48
482
原创 开机启动 php-fpm
php-fpm是独立于web服务器和php之前的一层服务器,所以,我们需要开机启动它开机启动的配置文件是:/etc/rc.local ,加入 /usr/local/php/sbin/php-fpm 即可 [root@localhost init]# vi /etc/rc.local 1 #!/bin/sh 2 # 3 # This script will be e...
2019-02-18 16:11:59
1093
原创 错误信息说找不到 php-fpm.conf
错误信息说找不到 php-fpm.conf原来是php-fpm.conf还没有,我们到 /usr/local/php/etc目录下将php-fpm.conf.default拷贝也一份成php-fpm.conf cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf编辑一下这个配置文件: vim php-...
2019-02-18 16:05:03
3380
1
原创 splash : runjs()
可以执行JavaScript代码,它与evaljs()的功能类似,但是更偏向于执行某些动作或声明某些方法例如:function main(splash, args) splash:go("https://www.baidu.com") splash:runjs("foo = function() { return 'bar' }") local result = sp...
2019-02-13 20:27:21
757
原创 splash:select()方法与select_all()
select()该方法可以选中符合条件的第一个节点,如果有多个节点符合条件,则只会返回一个,其参数是CSS选择器。示例如下: 1 2 3 4 5 6 7 function main(splash) splash:go("https://www.baidu.com/") input = splash:...
2019-02-11 18:35:37
3826
原创 splash : mouse_click()方法
此方法可以模拟鼠标点击操作,传入的参数为坐标值x和y。此外,也可以直接选中某个节点,然后调用此方法,示例如下: 1 2 3 4 5 6 7 8 9 function main(splash) #以百度为案例 splash:go("https://www.baidu.com/"...
2019-02-11 18:30:44
2532
原创 splash : add_cookie() 方法
此方法可以为当前页面添加Cookie,用法如下: 1 cookies = splash:add_cookie{name, value, path=nil, domain=nil, expires=nil, httpOnly=nil, secure=nil} 该方法的各个参数代表Cookie的各个属性。示例如下: 1...
2019-02-11 18:19:41
2004
原创 scrapy+splash爬取京东冰激凌信息
1.启动splash:使用docker启动服务命令启动Splash服务:sudo docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash2.创建新的项目:icecreamJD,创建新的爬虫icecreamscrapy startproject icecreamJDscrapy genspider ...
2019-02-11 16:58:06
641
原创 安装splash与启动
前提:安装 docker安装splash安装命令:sudo docker pull scrapinghub/splash启动命令:sudo docker run -p 5023:5023 -p 8050:8050 -p 8051:8051 scrapinghub/splash8050 (http),8051 (https) ,5023 (telnet)输入命令cat /etc/hos...
2019-02-11 13:25:17
1568
原创 国内连接docker官网很慢修改docker中配置,添加对应中国docker加速器。
国内连接docker官网很慢修改docker中配置,添加对应中国docker加速器。 vi /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true } ...
2019-02-11 13:14:39
1792
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人