scrapy

scrapy爬动态网址哔哩哔哩

佐手、 提交于 2020-02-27 16:32:37
这次,我们来爬取哔哩哔哩的热门视频,爬去其中的标题与详细页的同时观看人数和弹幕的实时在线,并存入mongodb 打开其中一个详情页发现里面是动态的,用静态网页的方法是爬不出来的 这次我们用抓包的方式来完成此次任务,也就是用chrome自带的开发者工具,按F12使用 用xhr筛选,其中的response等来筛选自己所需要的数据,并从Headers里拿到它的url,因为我们要爬八个网址,所以我们要用一个通用的式子来表示它,用正则表达式来拼凑出来。 我们找到了三个网址 我们发现这个网页的url是进不去的,但是我们发现response里面有我们需要的东西,用response.body.decode()来进行提取,再用正则提取。 根据dm二字我们发现了弹幕的url,进去后发现弹幕都在里面,这个即是我们所需要的url。 这里response里面有我们需要的coin等要点,这样就找到了所需要的所有东西。 接下来的难点呢,就是怎样拼凑出我们所通用的表达式 这里的话具体参照下方代码,用正则表达式等方式,表达出来 spider代码如下 # -*- coding: utf-8 -*- import scrapy import json from bilibili . items import BilibiliItem import re import time import requests class

Best practice to web hosting a website with Scrapy Spiders running in backend

旧时模样 提交于 2020-02-27 08:02:35
问题 Maybe I am missing something about Scrapy, but here is what I am about to do: I have created a website based on the information I am crawling from Internet using Scrapy Crawl Spiders. However, I am stuck in how to get my website going live. I am considerring web hosting but most of the service providers do not allow install those scripts on their server. Of couse I can rent a server but it is too expensive for me at the moment. Could anyone please shed some light on this if you have similar

scrapy框架中多个spider,tiems,pipelines的使用及运行方法

只谈情不闲聊 提交于 2020-02-26 23:45:12
用scrapy只创建一个项目,创建多个spider,每个spider指定items,pipelines.启动爬虫时只写一个启动脚本就可以全部同时启动。 本文代码已上传至github,链接在文未。 一,创建多个spider的scrapy项目 scrapy startproject mymultispider cd mymultispider scrapy genspider myspd1 sina.com.cn scrapy genspider myspd2 sina.com.cn scrapy genspider myspd3 sina.com.cn 二,运行方法 1.为了方便观察,在spider中分别打印相关信息 import scrapy class Myspd1Spider(scrapy.Spider): name = 'myspd1' allowed_domains = ['sina.com.cn'] start_urls = ['http://sina.com.cn/'] def parse(self, response): print('myspd1') 其他如myspd2,myspd3分别打印相关内容。 2.多个spider运行方法有两种,第一种写法比较简单,在项目目录下创建crawl.py文件,内容如下 from scrapy.crawler import

第 428 期 Python 周刊

泄露秘密 提交于 2020-02-26 21:35:47
文章,教程和讲座 训练一个自定义形状的预测模型 链接: https://www.pyimagesearch.com/2019/12/16/training-a-custom-dlib-shape-predictor/ 在本教程中,您将学习怎样训练一个自定义的切割图形的预测模型。然后使用训练好的预测模型预测输入图像或实时视频流上的路标。 Django Web 框架应该怎样进行密码验证 链接: https://www.youtube.com/watch?v=SRYBDmJlIck Django 内置有可用于密码验证的功能。该视频展示了怎样启用, 配置密码验证功能,如何自定义验证设置,编写自己的密码验证器并将验证方法集成到接口或API中。 用数据科学的方法计算二手车的合理价格 链接: https://t.co/sVcObePjlO 本文记录了使用 DS 方法计算二手车合理价格的整个过程。 一百万对于任何人来说都应该足够 链接: https://lwn.net/SubscriberLink/807218/7589bd420fa9cfbe/ 编程语言通常都有着一些显式或隐式的限制。例如标识符的最大长度, 变量存储值的范围之等等. 还有许多由语言设计者在实现该语言时未明确指定的限制。这种含糊不清会造成严重后果,而 python-dev 邮件一直在讨论确定 Python 语言中的各种限制。

Python语言之杂谈

女生的网名这么多〃 提交于 2020-02-26 17:34:06
python的用途:脚本自动化运维童鞋使用,、自动化测试、python单元测试、测试服务器接口、web服务后端接口等。 python2.7和python3.0 旧版本为2.7,新版本为3.0,新上手的童鞋用python3.0.新版本有很多特性。 开发工具 python.exe,window下安装完就可以用,IDE pycharm,早用再解脱。 最早是的接触Django web框架可以用来做网站,连接数据库mysql,后来用过一个自动打包工具,自动把要打包的文件和目录设置好执行一下就生成打包, 最近接触的项目是一个自动化测试脚本的框架挺好的,这三个使用场景都让我印象深刻。 python还在数据分析上很多用处。 pip3 旧版本pip可以理解为管理依赖包的工具。 python的教程很多,大家可以自行百度下。菜鸟教程、csdn有很多。 做几个小例子,服务自己的生活,定时发送邮件脚本,部署服务等等,Excle文件生成数据的导入等 顺便学一下爬虫,爬虫架构Scrapy,爬取图片,爬取网络上的信息,比如招聘信息,安居客房产信息,可以把信息爬下来入库, Django网站开发搭建一个博客,短信服务,二维码扫描回调接口,接口小程序等等。 来源: oschina 链接: https://my.oschina.net/machell/blog/3175422

python基础:scrapy redis项目创建分布式项目及保存到数据库步骤

喜夏-厌秋 提交于 2020-02-26 14:01:33
1.创建scrapy项目 2.安装scrapy redis pip install scrapy-redis 3.设置setting.py 3.1 添加item_piplines ITEM_PIPELINES = { # scrapyredis配置 'scrapy_redis.pipelines.RedisPipeline' : 400 } 3.2 添加scrapy-redis属性配置 """ scrapy-redis配置 """ # Enables scheduling storing requests queue in redis. SCHEDULER = "scrapy_redis.scheduler.Scheduler" # Ensure all spiders share same duplicates filter through redis. DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 调度器启用Redis存储Requests队列 #SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 确保所有的爬虫实例使用Redis进行重复过滤 #DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

python 爬虫 scrapy 入门(1)

北城以北 提交于 2020-02-26 12:55:45
python 爬虫 本问是根据崔老师的 python3-网络爬虫开发实战进行学习的。 如果有需要PDF书籍的可以发邮件联系。 @ author :Leo @ Mail:leo_lsj@ 163. com 什么是爬虫 爬虫可以简单分为几步:抓取页面、分析页面和存储数据。 在本书中,我们用到的第三方库有requests 、Selenium 和aioh 即等 来源: CSDN 作者: Leo_lsj 链接: https://blog.csdn.net/Leo_lsj/article/details/104495433

Python框架爬虫——Scrapy爬取当当网选定店铺的全部信息。保存至本地(csv、MongoDB )

我的梦境 提交于 2020-02-25 20:23:44
文章目录 一、创建项目 二、爬取子页面链接 三、设置每本书要爬取的Item(Items.py) 四、爬虫解析页面(spider.py) 五、将爬取内存保存至本地(piplines.py) 1、保存数据到MongoDB 2、保存到csv 六、查看、清洗数据,开始数据分析 一、创建项目 开始之前我们先建立项目 1、命令行输入 scrapy startproject dangdang 创建dangdang项目文件夹 2、命令行输入 cd dangdang 进入刚刚创建的目录中 3、命令行输入 scrapy genspider spider "http://store.dangdang.com/282"生成我们的爬虫文件。 二、爬取子页面链接 创建项目完毕后我们开始分析网页(Chrome浏览器F12打开开发者模式),鼠标移到我们需要的字段的位置,可以看到源码,再复制XPath(如下图)。 //*[@id="sidefloat"]/div[2]/div/div/map/area/@href 可以看到最左边的分栏给出了所有的分类,那么我们依次爬取文学、小说等等每个页面的内容即可。 我们先记录下这个的Xpath。 三、设置每本书要爬取的Item(Items.py) 那么对于每本书我们需要爬取的内容已经框选出来了 分别为价格、评论数量(销量)、书名、作者、分类(也就是上一步获取的内容)

Scrapy配置Redis集群

点点圈 提交于 2020-02-25 20:04:56
安装第三方库 pip install scrapy-redis-sentinel 修改 setting.py文件 ITEM_PIPELINES = { 'scrapy_redis_sentinel.pipelines.RedisPipeline': 543, } # Bloomfilter 配置 # 使用的哈希函数数,默认为 6 BLOOMFILTER_HASH_NUMBER = 6 # Bloomfilter 使用的 Redis 内存位,30 表示 2 ^ 30 = 128MB,默认为 30 (2 ^ 22 = 1MB 可去重 130W URL) BLOOMFILTER_BIT = 30 # 是否开启去重调试模式 默认为 False 关闭 DUPEFILTER_DEBUG = False # Redis 集群地址 REDIS_MASTER_NODES = [ {"host": "192.168.56.30", "port": "9000"}, {"host": "192.168.56.31", "port": "9000"}, {"host": "192.168.56.32", "port": "9000"}, ] # REDIS_CLUSTER_PARAMS 集群模式配置参数 REDIS_CLUSTER_PARAMS= { # "password": "password" }

How to set different IP according to different commands of one single scrapy.Spider?

▼魔方 西西 提交于 2020-02-25 08:08:06
问题 I have a bunch of pages to scrape, about 200 000. I usually use Tor and Polipo proxy to hide my spiders behaviors even if they are polite, we never know. So if I login this is useless to use one account and change IP. So that is why I can create several accounts on the website and to set my spider with arguments like in the following: class ASpider(scrapy.Spider): name = "spider" start_urls = ['https://www.a_website.com/compte/login'] def __init__ (self, username=None, password=None): self