python老是报错_python 中的scrapy 框架总是报错?

#!/usr/bin env python3

import scrapy, json

class jingzhunspider(scrapy.Spider):

name = "jingzhun"

allowed_domains = []

start_urls = ['https://rong.36kr.com/']

def __init__(self):

self.headers={"Referer":"https://rong.36kr.com/list/detail&?sortField=HOT_SCORE","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36","Cookie":"acw_tc=b65cfd2515395760831792797e7a30fed7278a95d7c68d0dcad0b9cbc4ac1b; kwlo_iv=1h; kr_stat_uuid=CQ5e225664238; Hm_lvt_e8ec47088ed7458ec32cde3617b23ee3=1539833640,1539835270,1539847843,1539854305; Hm_lpvt_e8ec47088ed7458ec32cde3617b23ee3=1539854305; download_animation=1; _kr_p_se=3bc105b4-9a7d-42fb-add8-bf95717e809e; krid_user_id=1174461189; krid_user_version=4; kr_plus_id=1174461189; kr_plus_token=sxXE3YtIANlixxyKQlgRsxUW9bw5_1182767____; device-uid=010004b0-d346-11e8-a96a-4199591fdd87; Hm_lvt_713123c60a0e86982326bae1a51083e1=1539836728,1539847818,1539915819,1540172654; Hm_lvt_1684191ccae0314c6254306a8333d090=1539836728,1539847818,1539915819,1540172655; kr_plus_utype=0; krnewsfrontss=4963ea68949936658d715f1da01ac2dc; M-XSRF-TOKEN=82688f4b00348470d9150fa6723dd91d4ef3037d93ccf1c010c11e523f0c4d80; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221174461189%22%2C%22%24device_id%22%3A%221668a22a82493-063c5cb7bcafff-163b6953-1296000-1668a22a82533c%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%2C%22first_id%22%3A%221668a22a82493-063c5cb7bcafff-163b6953-1296000-1668a22a82533c%22%7D; Hm_lpvt_713123c60a0e86982326bae1a51083e1=1540189058; Hm_lpvt_1684191ccae0314c6254306a8333d090=1540189059; Z-XSRF-TOKEN=eyJpdiI6IkNoUVM5ZUxnSTZlUkhTQlNkMmtzdXc9PSIsInZhbHVlIjoiUG11V2xcLzZXZElMWjRBY3l1MWxvc3ZFOWQ4S1pRNXd2b0FJSUk3Y01ZRHJSV1d3OEd3N25zcUNRaWFRYVpvenI0WmNlZmt4VStrU0NMYnc3XC94cklzUT09IiwibWFjIjoiYWY2OTFlNDA4NzNhYjAwYjg4MmZlYWZmNTljNmY4ZjY3ZTFhNjkwNzcxM2Y0MmQ5MDBlOTg5NzMwYjJlMjE3YiJ9; krchoasss=eyJpdiI6IjZJNXE4T0lkVXhMdjAxXC9OeDh3OUp3PT0iLCJ2YWx1ZSI6IjBQUm1cL1lQS2RpUFRmdndLN3ExYkdXdXVjSE9HY1RFYVB0NEh0S3VwbHhLMUczQlJ3RHdmMXVldVRZZ0JUeGVSWjY2a1R1QjZkMWd1RFdja2RBaTU1QT09IiwibWFjIjoiZWQzMmJmNDNkZTYzMTIwZTQwZGU1ZDdkM2EyN2Q2YWRiMzg2YmQ4ZGIyZmE4MjI1YjgxZGI0YzY2YzMzMzAxMSJ9"

,"Host":"rong.36kr.com"}

def start_requests(self):

print(self.headers)

yield scrapy.Request(url="https://rong.36kr.com/n/api/column/0/company?sortField=HOT_SCORE&p=1",callback=self.get_info, headers=self.headers, dont_filter=True)

def get_info(self, response):

print(response.text)

SCORE', 'Host': 'rong.36kr.com'}

2018-10-23 16:16:31 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://rong.36kr.com/list/detail&?sortField=HOT_SCORE)

{

"code": 403,

"data": "GET https://rong.36kr.com/n/api/column/0/company?sortField=HOT_SCORE&p=1",

"msg": "用户未登录 "

}

2018-10-23 16:16:31 [scrapy.core.engine] INFO: Closing spider (finish

这是为什么呢?因为我不用框架的时候就不报错,可以正常的返回数据,求人指教,谢谢

Scrapy是一个基于Python的爬虫框架,它可以帮助我们快速高效地抓取网站数据。在这里,我将介绍Scrapy的基本用法,让您能够快速入门。 安装Scrapy ----------------------- 在安装Scrapy之前,我们需要先安装Python。然后,我们可以通过以下命令来安装Scrapy: ``` pip install scrapy ``` 创建Scrapy项目 ----------------------- 创建Scrapy项目的命令是: ``` scrapy startproject project_name ``` 这个命令将会在当前目录下创建一个名为project_name的文件夹,其包含了Scrapy项目的基本结构。 编写Spider ----------------------- 在Scrapy,Spider是用来定义爬取网站的规则的。我们可以通过以下命令来创建一个Spider: ``` scrapy genspider spider_name domain_name ``` 其,spider_name是我们自己定义的Spider名称,domain_name是我们要抓取的网站域名。 接下来,我们需要在Spider定义如何爬取网站。这里我们以爬取“http://quotes.toscrape.com/”网站上的名言警句为例。我们可以在Spider定义如下规则: ```python import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get(), 'author': quote.css('span small::text').get(), 'tags': quote.css('div.tags a.tag::text').getall(), } next_page = response.css('li.next a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse) ``` 在上述代码,我们首先定义了Spider的名称,接着定义了我们要爬取的起始URL,最后定义了如何解析网页的函数parse()。在parse()函数,我们使用了Scrapy的选择器来提取网页的名言警句,并将其保存到字典。接着,我们使用response.follow()函数来获取下一页的URL,并继续解析。 运行Spider ----------------------- 要运行我们刚才创建的Spider,我们可以使用以下命令: ``` scrapy crawl spider_name ``` 其,spider_name是我们之前创建的Spider名称。 Scrapy会自动去抓取我们定义的起始URL,并根据我们定义的规则来解析网页。解析完成后,Scrapy会将结果保存到我们指定的位置。 总结 ----------------------- Scrapy是一个非常强大的Python爬虫框架,它可以帮助我们快速高效地抓取网站数据。在本教程,我们介绍了Scrapy项目的创建、Spider的定义以及如何运行Spider。如果您想更深入地学习Scrapy,可以参考官方文档:https://docs.scrapy.org/en/latest/。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值