网络爬虫——scrapy案例「建议收藏」

网络爬虫——scrapy案例「建议收藏」1.创建项目打开一个终端输入(建议放到合适的路径下,默认是C盘)scrapystartprojectTXmoviescdTXmoviesscrapygenspidertxmsv.qq.com2.修改setting修改三项内容,第一个是不遵循机器人协议,第二个是下载间隙,由于下面的程序要下载多个页面,所以需要给一个间隙(不给也可以,只是很容易被侦测到),第三个是请求头,添加一个User-Agent,第四个是打开一个管道ROBOTSTXT_OBEY=FalseDOWN

大家好,又见面了,我是你们的朋友全栈君。

1.创建项目

打开一个终端输入(建议放到合适的路径下,默认是C盘)

scrapy startproject TXmovies

cd TXmovies

scrapy genspider txms v.qq.com

2.修改setting

修改三项内容,第一个是不遵循机器人协议,第二个是下载间隙,由于下面的程序要下载多个页面,所以需要给一个间隙(不给也可以,只是很容易被侦测到),第三个是请求头,添加一个User-Agent,第四个是打开一个管道

ROBOTSTXT_OBEY=False

DOWNLOAD_DELAY=1

DEFAULT_REQUEST_HEADERS={

‘Accept’:’text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8′,

‘Accept-Language’:’en’,

‘UserAgent’:’Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/27.0.1453.94Safari/537.36′

}

ITEM_PIPELINES={

        ‘TXmovies.pipelines.TxmoviesPipeline’:300,

}

3.确认要提取的数据,item项

item定义你要提取的内容(定义数据结构),比如我提取的内容为电影名和电影描述,我就创建两个变量。Field方法实际上的做法是创建一个字典,给字典添加一个建,暂时不赋值,等待提取数据后再赋值。下面item的结构可以表示为:{‘name’:”,’descripition’:”}。

#-*-coding:utf-8-*-

#Define here the models for your scraped items

#

#See documentation in:

#https://docs.scrapy.org/en/latest/topics/items.html

import scrapy

class TxmoviesItem (scrapy.Item):

#define the fields for your item here like:

#name=scrapy.Field()

name=scrapy.Field()

description=scrapy.Field()

4.写爬虫程序

5.交给管道输出

管道可以处理提取的数据,如存数据库。我们这里仅输出。

#-*-coding:utf-8-*-

#Define your item pipelines here

##Don’t forget to add your pipeline to the ITEM_PIPELINES setting #See:https://docs.scrapy.org/en/latest/topics/item-pipeline.html

classTxmoviesPipeline(object):

        def process_item(self,item,spider):

                print(item)

                return item

6.run,执行项目

from scrapy import cmdline

cmdline.execute(‘scrapy crawl txms’.split()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153147.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vue2使用animate css[通俗易懂]

    vue2使用animate css[通俗易懂]vue2使用animatecss先上几个链接vue插件大集合:awesome-vuevue2插件:vue2-animate:vue2-animatevue2插件vue2-animateDEMO:vue2-animatedemo:vue2-animate-demo我想用过animatecss的都知道这是一个极其简单而又酷炫的css动画库,但是我想在vue2中使用anima

  • Cookie重点

    Cookie重点

  • stm32入门教程_单片机STM32

    stm32入门教程_单片机STM32提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言首先你得知道学习stm32,实际就是在学ARM内核,stm32内核就是ARM的;一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib..

  • 一分钟解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法[通俗易懂]

    一分钟解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法[通俗易懂]当你打开浏览器看到各种首页跳转的页面,对于强迫症的我是不能接受的!各种情况都碰到了,现在给出解决方法。按照下面的方式去排查就可以一定能解决你的问题,如果不行的话你来打我呀–!。如果问题解决了希望你能推荐给其他人。方式一   查看chrom浏览器的快捷方式后面是否有小尾巴,去掉就可以。如下:方式二   查找到源程序位置,修改源文件的文件名。然后删除旧的快捷方式,重新将改名后

  • java实现简单的图书管理系统「建议收藏」

    java实现简单的图书管理系统「建议收藏」一、项目分布Book类:定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get、set方法Library类:写了登录函数(1、普通用户,2、管理员,3、退出系统),Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表Root类:继承…

  • 五、Abp vNext 基础篇丨博客聚合功能

    五、Abp vNext 基础篇丨博客聚合功能介绍业务篇章先从客户端开始写,另外补充一下我给项目起名的时候没多想起的太随意了,结果后面有些地方命名冲突了需要通过手动using不过问题不大。开工应用层根据第三章分层架构里面讲到的现在我们模型

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号