网络爬虫——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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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