网络爬虫——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)
上一篇 2022年6月26日 下午4:16
下一篇 2022年6月26日 下午4:36


相关推荐

  • Django(25)WSGIRequest对象[通俗易懂]

    Django(25)WSGIRequest对象[通俗易懂]Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。也就是我们经常看到的request参数。在这个

    2022年7月30日
    14
  • iocomp-Crack|New Version最新【2021】「建议收藏」

    iocomp-Crack|New Version最新【2021】「建议收藏」使用IocompComponents5.0以上能够助程序员开发出逼真的工控仪表和工控图表,让程序开发不再消耗时间和精力,有了这个控件不仅能节约开发时间,而且还降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像更精细。他们用于生成具有专家级外观的仪器控件,并能紧密整合到Microsoft’s.NETFramework之中。您无需辛苦的在属性窗口中寻找该属性,其自定义的属性编辑器提供了简单快速的属性配置方法。Ultra控件包提供了70种专家级控件以及绘图控件包组件非常强大的

    2022年7月25日
    12
  • 完整教程:2026年阿里云五种方案快速部署 OpenClaw(Clawdbot)详细教程

    完整教程:2026年阿里云五种方案快速部署 OpenClaw(Clawdbot)详细教程

    2026年3月13日
    2
  • BigDecimal中divide方法详解

    BigDecimal中divide方法详解首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算。其中有这么一个方法.publicBigDecimaldivide(BigDecimaldivisor,intscale,introundingMode)第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式。其中我们标题上就是其中的两种BigDecimal.ROUND_DOW…

    2022年5月2日
    273
  • Fungus插件_插件大师

    Fungus插件_插件大师一个任务的fungus声明fungus设置一个开关,当触发碰撞器时,将开关打开,当在持续碰撞时如是碰到的是人物,并且按下空格且开关为开,就执行对话重载名字并且关闭开关//多个任务的时候就是加个else其他都一样usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingFungus;usingUnityEngine;publicclassFungunNpcGrandFather:.

    2025年7月26日
    8
  • export_symbol的使用

    export_symbol的使用       问题是这样的,前几天师妹需要在内核模块中使用tasklist_lock来操作保护内核进程链表,由于tasklist_lock如果要在模块中使用就必须把它填充到内核符号表里面,就要使用export_symbol,她在sched.h里面就是tasklist_lock声明的地方,添加export_symbol(tasklist_lock),在编译的时候总是出现undefinedsymb

    2022年7月16日
    25

发表回复

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

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