A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

一、创建Scrapy文件

1.创建工程

#在命令行下输入 scrapy startproject +你的工程名
scrapy startproject douban


2.创建爬虫程序

#cd 目录名
#scrapy genspider 名字 网址
#这里有个大坑,目录名和项目名不能一样,否则会报错以后若遇到,要改为相对路径导入
cd douban
scrapy genspider doubantest movie.douban.com/top250





4、文件说明:

scrapy.cfg  项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)
items.py    设置数据存储模板,用于结构化数据,定义需要后期处理的数据。如:Django的Model,
pipelines    数据处理行为,存取后期处理数据的功能如:一般结构化的数据持久化
settings.py 配置文件,如:递归的层数、并发数,延迟下载等
spiders      爬虫目录,如:创建文件,编写爬虫规则
main          这是我手动添加的文件,用来在命令行下执行程序


#main.py
from scrapy import cmdline
#通过调用命令行执行格式为scrapy crawl +类名 如我的spiders文件下的doubantest.py的class EventSpider(scrapy.Spider): name = 'doubantest',类名就是对应的name
cmdline.execute("scrapy crawl doubantest".split())


# -*- coding: utf-8 -*-
#event.py文件
# -*- coding: utf-8 -*-
import scrapy
import scrapy.spiders

class DoubantestSpider(scrapy.Spider):
    name = 'doubantest'
    allowed_domains = ['https://movie.douban.com/top250']
    start_urls = ['https://movie.douban.com/top250/']

    def parse(self, response):
        print(response.body.decode('UTF-8'))

执行main.py文件

发现访问403

2018-11-25 14:22:52 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 https://movie.douban.com/top250/>: HTTP status code is not handled or not allowed
防止反爬机制,伪装user_agent

1.打开豆瓣top250 :  https://movie.douban.com/top250

2.F12 打开控制台->刷新页面 ->Network->请求头部找到 User-Agent

3.在scrapy项目中找到settings.py的  USER_AGENT = ' '  (把注释去掉,加以下内容)
#USer_AGENT ='你自己的user_agent'

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36'
这样就能打印出来页面了
---------------------
【转载,仅作分享,侵删】
作者:lizhaozhaozhaoxuan
原文:https://blog.csdn.net/lizhaozhaozhaoxuan/article/details/84487870


3 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马