网络爬虫——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()

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 上位机控制plc输出教程_上位机读取plc

    上位机控制plc输出教程_上位机读取plc图解PLC编程入门可编程逻辑控制器是种专门为在工业环境下应用而设计的数字运算操作电子系统,它采用一种可编程的存储器在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。PLC的定义可编程序控制器是一种数字运算操作电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时…

    2025年10月8日
    2
  • 画平行线的三种方法_平行线的画法五种视频

    画平行线的三种方法_平行线的画法五种视频《平行线的画法》教学反思教师在教学中要善于利用小组合作学习,充分调动了同学们的积极性。接下来由小编整理了《平行线的画法》教学反思,欢迎查看,希望帮助到大家。《平行线的画法》教学反思【1】每到学习平行线的画法,总有学生学起来感到困难,用尺子移来移去,实在太麻烦,而且学生在以后也不容易记住。正是基于这样的认识画平行线的教学只能由教师传授给学生,他们也只能是机械的模仿,也就是简单的完成操作工的活动,但是…

    2022年9月20日
    2
  • 傅里叶级数的变换_周期信号的傅里叶级数和傅里叶变换

    傅里叶级数的变换_周期信号的傅里叶级数和傅里叶变换傅里叶分析之掐死教程(完整版)更新于2014.06.06Heinrich·4个月前作者:韩昊知乎:Heinrich微博:@花生油工人知乎专栏:与时间无关的故事谨以此文献给大连

    2022年8月5日
    4
  • 数据库-第一范式、第二范式、第三范式、BC范式、第四范式简析

    数据库-第一范式、第二范式、第三范式、BC范式、第四范式简析在设计与操作维护数据库时,最关键的问题就是要确保数据能够正确地分布到数据库的表中。使用正确的数据结构,不仅有助于对数据库进行相应的存取操作,还可以极大地简化应用程序中的其他内容(查询、窗体、报表、代码等),按照“数据库规范化”对表进行设计,其目的就是减少数据库中的数据冗余,以增加数据的一致性。泛化时在识别数据库中的一个数据元素、关系以及定义所需的表和各表中的项目这些初始工作之后的一个细

    2022年5月24日
    37
  • ASP.NET MVC 模式的优缺点「建议收藏」

    ASP.NET MVC 模式的优缺点「建议收藏」http://www.enet.com.cn/eschool/video/c_peng/看别人的视频开始学习第一课。

    2022年7月22日
    14
  • 如何干净卸载_怎么把360卸载干净

    如何干净卸载_怎么把360卸载干净Oracle大家都知道下载简单,但是想卸载,没那么轻松,会发现自己卸载不干净,导致再次安装就会失败,现在我就一步一步演示如何彻底卸载Oracle,然后再重新安装。(本机win10)1.停止系统中所有的Oracle服务(win+r—-taskmgr—–服务)2.运行UniversalInstallera、点击应用b、卸载产品c、选择Orac…

    2022年10月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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