scrapy基础

fetch:使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出

scrapy fetch --nolog http://www.23andme.com

view:scrapy view 将页面download本地通过浏览器加载打开,发现淘宝和京东是不能加载出来的。

scrapy view http://www.taobao.com
scrapy view http://www.23mofang.com
scrapy view http://www.jd.com
scrapy view http://http://www.amazon.cn/
scrapy view http://www.amazon.cn/

list:列出有哪些爬虫

SimilarFacedeMacBook-Pro:spiders similarface$ scrapy list
amazonbook
stackoverflow
taobao
Similar

edit:默认会调用vim进行对爬虫修改

SimilarFacedeMacBook-Pro:spiders similarface$ scrapy edit stackoverflow

shell:scrapy的终端

#打开丑事百科玩玩
SimilarFacedeMacBook-Pro:spiders similarface$ scrapy shell http://www.qiushibaike.com/
>>> response
<200 http://www.qiushibaike.com/>
>>> response.url
‘http://www.qiushibaike.com/‘
>>> response.encoding
‘utf-8‘
>>> response.headers
{‘Set-Cookie‘: [‘_qqq_uuid_="2|1:0|10:1453947674|10:_qqq_uuid_|56:MDlhM2ZlODM2N2UxZGE0YmYyNjU4MmExM2Q0OTE3MzU4NTliNzIyMg==|505b66b8fc9bc1936ce339417c5c6be46d0cfc570baa61ce378c033c18af4358"; Domain=.qiushibaike.com; expires=Sat, 27 Feb 2016 02:21:14 GMT; Path=/‘], ‘Vary‘: [‘User-Agent‘], ‘Server‘: [‘nginx‘], ‘Date‘: [‘Thu, 28 Jan 2016 02:21:14 GMT‘], ‘Content-Type‘: [‘text/html; charset=UTF-8‘]}
>>> response.meta
{‘download_timeout‘: 180.0, ‘handle_httpstatus_all‘: True, ‘download_latency‘: 0.13596606254577637, ‘depth‘: 0, ‘download_slot‘: ‘www.qiushibaike.com‘}
>>> response.status
200
>>> dir(response)
[‘_DEFAULT_ENCODING‘, ‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__doc__‘, ‘__format__‘, ‘__getattribute__‘, ‘__hash__‘, ‘__init__‘, ‘__module__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__slots__‘, ‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘_auto_detect_fun‘, ‘_body‘, ‘_body_declared_encoding‘, ‘_body_inferred_encoding‘, ‘_cached_benc‘, ‘_cached_selector‘, ‘_cached_ubody‘, ‘_declared_encoding‘, ‘_encoding‘, ‘_get_body‘, ‘_get_url‘, ‘_headers_encoding‘, ‘_set_body‘, ‘_set_url‘, ‘_url‘, ‘body‘, ‘body_as_unicode‘, ‘copy‘, ‘css‘, ‘encoding‘, ‘flags‘, ‘headers‘, ‘meta‘, ‘replace‘, ‘request‘, ‘selector‘, ‘status‘, ‘url‘, ‘urljoin‘, ‘xpath‘]
>>> print(response.body.decode(‘utf-8‘))
...
<div class="content">

我是一个观众,我有话要说,从一个观众的角度,我们喜欢六小龄童老师的孙悟空,陪我们长大。今年是猴年,多希望春晚的舞台上可以有孙悟空。但是,你们选出来的节目,是老百姓喜欢的吗?tfboys 韩国明星,那些来参加合适吗?春晚是全国人的春晚,不是你们自己的春晚!希望做成百姓的春晚,谢谢!
<!--1453944031-->
</div>
...
时间: 2024-08-02 06:11:38

scrapy基础的相关文章

Scrapy基础(十三)————ItemLoader的简单使用

ItemLoader的简单使用:目的是解决在爬虫文件中代码结构杂乱,无序,可读性差的缺点 经过之前的基础,我们可以爬取一些不用登录,没有Ajax的,等等其他的简单的爬虫回顾我们的代码,是不是有点冗长,将所需字段通过xpath或者css解析出来,再自定义语句(还不是函数中)进行清洗;然后再装入Item中,有没有这样一种方法:从Item中可以直接清洗岂不是很简单今天就学习 ItemLoader这样一种对戏,简单代码,可读增强 思路: 1,创建一个ItemLoad对象 2,通过该对象的add_css或

Scrapy基础一 ------学习Scrapy之前所要了解的

技术选型: Scrapy vs requsts+beautifulsoup    1,reqests,beautifulsoup都是库,Scrapy是框架    2,Scrapy中可以加入requests beautifulsoup    3,Scrapy基于twisted,异步IO框架,性能最大的优势    4,Scrapy 扩展方便,提供了许多内置功能    5,内置css和xpath selector(都是c写的)非常方便,beautifulsoup(是纯python写的缺点就是慢) 网页

Scrapy基础(十四)————Scrapy实现知乎模拟登陆

模拟登陆大体思路见此博文,本篇文章只是将登陆在scrapy中实现而已 之前介绍过通过requests的session 会话模拟登陆:必须是session,涉及到验证码和xsrf的写入cookie验证的问题:在scrapy中不需担心此问题,因为Request会保证这是一个会话,并且自动传递cookies原理想通,因为验证码识别的问题,这里先使用cookie模拟登陆 1 # -*- coding: utf-8 -*- 2 3 import scrapy 4 import json 5 import

Scrapy基础————图片下载后将本地路径添加到Item中

前边讲到简单的图片下载,但是怎样将图片的本地路径和存储在Item中的数据对应起来,所以本篇博文讲解到如何将 本地的下载后的图片路径写入到Item中 思路:自定义pipline,多加个管道,该管道继承下载图片的类,并重写与Item 交互的方法,从众提取到本地路径,并返回这个Item交给下一个pipline管道 具体代码: 先导入 from scrapy.pipelines.images import ImagesPipeline 1 #补充Item的字段,将文章列表页的图片下载下来,并将图片的路径

scrapy基础知识之发送POST请求:

可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求. 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self) 方法,并且不再调用start_urls里的url. class mySpider(scrapy.Spider): # start_urls = ["http://www.example.com/"] def start_requests(self):

scrapy基础知识之 使用FormRequest.from_response()方法模拟用户登录:

通常网站通过 实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充 使用Scrapy抓取网页时,如果想要预填充或重写像用户名.用户密码这些表单字段, 可以使用 FormRequest.from_response() 方法实现. 下面是使用这种方法的爬虫例子: import scrapy class LoginSpider(scrapy.Spider): name = 'example.com' start_urls = ['http://www.example.com/users/lo

scrapy基础知识之下载中间件使用案例:

1. 创建middlewares.py文件. Scrapy代理IP.Uesr-Agent的切换都是通过DOWNLOADER_MIDDLEWARES进行控制,我们在settings.py同级目录下创建middlewares.py文件,包装所有请求. import random import base64 from settings import USER_AGENTS from settings import PROXIES # 随机的User-Agent class RandomUserAgen

scrapy基础知识之 scrapy 三种模拟登录策略:

注意:模拟登陆时,必须保证settings.py里的 COOKIES_ENABLED (Cookies中间件) 处于开启状态 COOKIES_ENABLED = True或 # COOKIES_ENABLED = False 策略一:直接POST数据(比如需要登陆的账户信息) # -*- coding: utf-8 -*- import scrapy class Renren1Spider(scrapy.Spider): name = "renren1" allowed_domains

scrapy基础知识之 RedisCrawlSpider:

这个RedisCrawlSpider类爬虫继承了RedisCrawlSpider,能够支持分布式的抓取.因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写parse()方法. 同样也不再有start_urls了,取而代之的是redis_key,scrapy-redis将key从Redis里pop出来,成为请求的url地址. from scrapy.spiders import Rule from scrapy.linkextractors import Li