crawl

python爬虫29 | 使用scrapy爬取糗事百科的例子,告诉你它有多厉害!

一曲冷凌霜 提交于 2020-04-25 06:51:51
是时候给你说说 爬虫框架了 使用框架来爬取数据 会节省我们更多时间 很快就能抓取到我们想要抓取的内容 框架集合了许多操作 比如请求,数据解析,存储等等 都可以由框架完成 有些小伙伴就要问了 你他妈的 为什么不早点说呢? 是这样的 当你不知道 1+1 是什么的时候 你去使用计算器来计算 也是没用的 对吧 所以框架的使用 在现在这个时候(爬虫28篇之后)讲 就是一个不错的时机 今天 小帅b就跟你说说 scrapy这个框架 到底有多牛b 那么 接下来就是 学习 python 的正确姿势 要使用 scrapy 首先当然你得需要有啊 你可以使用 conda 安装 conda install -c conda-forge scrapy 你也可以使用 PyPI 安装 pip install Scrapy scrapy依赖一些相关的库 lxml parsel w3lib twisted cryptography and pyOpenSSL 如果你在使用 scrapy 的时候发现相关库缺失 把裤子穿上就是了 哦不是 把你缺失的库安装上就完事了 好了 现在假设你已经安装好了 scrapy 这个框架 那么接下来 小帅b会带你使用它来爬取一下 糗事百科 的段子 主要让你知道 scrapy 的使用以及体验它的牛逼之处 废话不多说 在你想要存放的爬虫文件目录下 使用命令来创建一个 scrapy 爬虫项目

scrapy 执行同个项目多个爬虫

无人久伴 提交于 2020-04-24 20:13:23
一开始我们默认都是只有一个爬虫的,所以执行的代码都是在项目下创建一个py文件 from scrapy import cmdline cmdline.execute('scrapy crawl 爬虫名'.split( )) 但是要执行多个爬虫就犯难了,在这里我只是做个笔记加强记忆 原博客 https://www.cnblogs.com/lei0213/p/7900340.html 其中执行以下:   1、在spiders同级创建任意目录,如:commands   2、在其中创建 crawlall.py 文件 (此处文件名就是自定义的命令) crawlall.py from scrapy.commands import ScrapyCommand from scrapy.utils.project import get_project_settings class Command(ScrapyCommand): requires_project = True def syntax(self): return ' [options] ' def short_desc(self): return ' Runs all of the spiders ' def run(self, args, opts): spider_list = self.crawler_process.spiders

如何利用scrapy新建爬虫项目

两盒软妹~` 提交于 2020-04-24 18:44:11
抓取豆瓣top250电影数据,并将数据保存为csv、json和存储到monogo数据库中,目标站点:https://movie.douban.com/top250 一、新建项目 打开cmd命令窗口,输入:scrapy startproject douban【新建一个爬虫项目】 在命令行输入:cd douban/spiders【进入spiders目录】 在命令行输入:scrapy genspider douban_spider movie.douban.com【douban_spider为爬虫文件,编写xpath和正则表达式的地方,movie.douban.com为允许的域名】 在pycharm打开创建的douban项目,目录结构如下: 二、明确目标 分析网站,确定要抓取的内容,编写items文件; import scrapy class DoubanItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() #序号 serial_number = scrapy.Field() #电影名称 movie_name = scrapy.Field() #电影简介 introduce = scrapy.Field() #星级 star = scrapy.Field() #评价数

scrapy爬虫笔记(创建一个新的项目并运行)

牧云@^-^@ 提交于 2020-04-24 17:59:23
前期安装请参考: scrapy爬虫笔记(安装) 在确保安装环境没有问题的情况下,新建一个项目需要在cmd中进行 首先,在自定义的文件夹(我的是E:\study\python_anaconda_pf\MyProject\scrapy_study)下面创建一个工程,我的工程名字为movie_250 在文件夹空白位置按照键盘shift不松手点击鼠标右键,选择“在此处打开命令窗口”,或者在cmd中cd到这个文件夹也可 输入命令 scrapy startproject movie_250 查看文件夹会发现自动生成了一个以工程名命名的文件夹,这个文件夹称为“项目文件” 2. 打开PyCharm,找到这个文件夹,看一下文件夹里面的目录结构(都是自动生成的,不需要自行修改名称) 各个文件的含义: scrapy.cfg 是项目的配置文件,默认内容如下: # Automatically created by: scrapy startproject # # For more information about the [deploy] section see: # https://scrapyd.readthedocs.io/en/latest/deploy.html [settings] default = movie_250.settings [deploy] # url = http:/

python网络爬虫抓取动态网页并将数据存入数据库MySQL

隐身守侯 提交于 2020-04-21 05:22:30
简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。 以上是网页源码 以上是审查网页元素 所以此处不能简单的使用正则表达式来获取内容。 以下是完整的获取内容并存储到数据库的思路及源码。 实现思路: 抓取实际访问的动态页面的url – 使用正则表达式获取需要的内容 – 解析内容 – 存储内容 以上部分过程文字解释: 抓取实际访问的动态页面的url: 在火狐浏览器中,右键打开插件 使用**firebug审查元素** *(没有这项的,要安装firebug插件),找到并打开**网络(NET)**标签页。重新加载网页,获得网页的响应信息,包括连接地址。每个连接地址都可以在浏览器中打开。本网站的动态网页访问地址是: http://baoliao.hb.qq.com/api/report/NewIndexReportsList/cityid/18/num/20/pageno/1?callback=jQuery183019859437816181613_1440723895018&_=1440723895472    正则表达式: 正则表达式的使用有两种思路,可以参考个人有关其简述: python实现简单爬虫以及正则表达式简述

SQLSERVER数据库死锁与优化杂谈

走远了吗. 提交于 2020-04-17 20:28:38
死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行;所以,即时去捕捉数据库死锁,是挺不容易的。 如果,数据库死锁比较长时间,那么死锁是可以被捕捉的。 可以用SqlServer活动监视器来查看,哪些进程锁了数据库。 首先打开SqlServer活动监视器,然后可以看到,界面里有进程,查看资源,数据文件I/O,最近消耗大量资源的查询四项。 四项显示内容如下: 进程:在进程里可以看到哪些进程被阻塞,查看属性【阻塞者】可以看到,【阻塞者】的会话ID。 等待资源:等待资源里有一些锁,可以看看那些锁累计等待时间较多。 数据文件I/O:数据文件I/O记录一些数据库MDF,LDF的读写速度。 最近消耗大量资源的查询:记录一些消耗资源较大的SQL查询。 查询进程里被死锁的会话ID,然后执行下面的SQL,进行解锁。 declare @spid int Set @spid = 518 --锁表进程会话ID declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql) 也可以用下面SQL语句查询死锁进程,这样查询死锁进程,定位比较快。 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id

泄露的网站证书和私钥?来做些有趣的实验吧!

馋奶兔 提交于 2020-04-15 13:20:51
【推荐阅读】微服务还能火多久?>>>   文章目录   基本概念   正向代理和反向代理   HTTPS证书   DNS投毒   攻击准备   实战   DNS投毒   反向代理   控制流量   流量操纵   结语    网站配套有APP,因为做了 SSLPinning ,因此用 Burpsuite 代理抓包会报错:    The client failed to negotiate a TLS connection to xxx.com:443 : Remote host closed connection during handshake   既然这样,利用泄露的证书和私钥来一个“完美”中间人不就行了!   基本概念   在正式实战之前,先介绍一下接下来用到的技术中的一些基本概念:正向代理、反向代理、DNS解析和HTTPS证书。   正向代理和反向代理   代理分为正向和反向两种。    正向代理 ,也被称之为转发代理,是一种比较常见的代理方式。一般情况下,正向代理(转发代理)用于某个区域的网络(如公司内网)无法直接访问互联网环境,或者被墙等原因,需要借助正向代理服务器来间接的访问。需要使用正向代理的主机需要配置代理服务器的IP。      比如常用的 Burpsuite ,就可以看做正向代理服务器,在使用的时候需要把浏览器的代理地址配置到 Burpsuite

对安全技术运营指标的一些思考

二次信任 提交于 2020-04-12 15:35:14
  文章目录   一、为什么需要安全运营指标体系   二、安全技术运营指标体系营   写在最后    安全运营是越来越受到重视的话题,我们希望通过设定和不断达成运营指标来持续提高安全能力。 一、为什么需要安全运营指标体系   目前,大部分企业主要从工作量和是否发生安全事件两个维度展开对安全工作的评价。笔者认为这两个维度都无法客观评估安全工作实际效果。   首先,工作量只能体现安全团队做了多少事,也就是“苦劳”。但在脱离工作效果的情况下,工作量的意义非常有限,工作效果决定了我们是不是在“瞎忙”。   其次,用安全事件评估工作效果几乎是所有安全从业者的痛。虽然谁都知道没有100%的安全,但每次出现安全事件还是会被质疑:“公司投入这么多安全预算,为什么还出问题?”另外,在安全部门申请预算的时候,也会被问到类似“买了这个产品是不是这一类的问题就不会发生了?”这种问题。   所以,我们需要一个完善的安全运营指标体系,将以安全事件驱动的效果评估演变成细粒度指标驱动的安全能力评估。在《从运营角度看安全团队的成长》一文的最后,笔者将安全运营体系分为了对内运营和对外运营。但经过思考,我们决定将整个体系改造为技术运营和非技术运营两个维度,如下图:    笔者团队的目标是通过一套或多套指标体系启动安全技术和非技术工作。而本文的目的是完成对安全技术运营指标的定义。   

34万亿新基建之下,半导体细分赛道里的中小企业,能活得更好吗?

爷,独闯天下 提交于 2020-04-11 08:39:30
  这里有本突围秘籍。   “新基建”无疑是今年的“香饽饽”,涉及领域众多,包括5G基建、特高压、城际高速铁路和城际轨道交通、新能源汽车充电桩、大数据中心、人工智能、工业互联网等。   总投资规模近34万亿元的清单,为各行各业带来了前所未有的发展机遇,而半导体作为新基建的基础建材,也将乘风而起。   今天下午,镁客网、盛世金财主办,江北新区产融中心、IC创新学院、和利资本、南京江北新区智汇研创、镁客空间联合主办了线上公开课《新基建浪潮下半导体细分赛道如何“突出重围”》。   线上, 百识电子首席执行官宣融和武汉飞恩微电子总经理王小平一同分享了新基建对半导体细分赛道企业的影响, 在介绍行业背景、市场变迁的同时,这些企业能看到哪些机遇?又该如何把握时机?       被国外厂商占据的汽车MEMS压力传感器市场   王小平一开始就说出了一个惊人的数字。目前国内车用MEMS市场被国外供应商垄断,比如博世、大陆电子、电装、森萨特等,国产汽车MEMS传感器仅占1%的份,国内市场呈现出需求旺盛但国产供给严重不足的局面。   问题出在哪里呢?   王小平认为,国产MEMS厂商目前有很多不足,但最重要的是以下两个方面:    1、新品迭代速度慢,厂商在产品性能提升、功能迭代、新品推出速率等方面远远落后于海外企业; 2、国产MEMS厂商制造经验不足,产品良品率、一致性、可靠性相对较低

scarpy爬虫框架

北战南征 提交于 2020-04-11 08:08:03
目录 架构介绍 安装创建和启动 配置文件目录介绍 爬取数据,并解析 数据持久化 保存到文件 保存到redis 动作链,控制滑动的验证码 架构介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 ​ Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 IO多路复用 # 引擎(EGINE)(大总管) 引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 # 调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 # 下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的 # 爬虫