Python版本:3.5    IDE:Pycharm

今天跟着网上的教程做了第一个Scrapy项目,遇到了很多问题,花了很多时间终于解决了==

一、Scrapy终端(scrapy shell)

Scrapy终端是一个交互终端,供我们在未启动spider的情况下尝试及调试爬取代码。 其本意是用来测试提取数据的代码,不过我们可以将其作为正常的Python终端,在上面测试任何的Python代码。

在命令行界面输入scrapy shell <url>(这里的网址不需要加引号),例如:

scrapy shell https://www.huya.com/g/lol

接着该终端(使用Scrapy下载器(downloader))获取URL内容并打印可用的对象及快捷命令(注意到以[s] 开头的行):

  • fetch(request) - 从给定请求获取新响应,并相应地更新所有相关对象。
  • view(response) - 在本地Web浏览器中打开给定的响应,以进行检查。这将向响应正文添加一个<base>标记,以便正确显示外部链接(如图片和样式表)。但请注意,这将在您的计算机中创建一个临时文件,不会自动删除。
  • shelp() - 打印有可用对象和快捷方式列表的帮助

二、建立第一个Scrapy项目

选择一个文件夹,shift+右键然后进入命令行界面,输入以下代码新建一个Scrapy项目:

scrapy startproject HuyaLol

打开Pycharm,然后再打开我们刚建好的HuyaLol项目,在spiders文件夹下新建一个lol.py

然后就可以在lol.py里编写我们的程序了,代码如下:

 import scrapy

 class huyalol(scrapy.Spider):
name = "huyalol"
start_urls = ["https://www.huya.com/g/lol"] def parse(self, response):
title_list = response.xpath('//*[@id="js-live-list"]/li/a[2]/text()').extract()
name_list = response.xpath('//*[@id="js-live-list"]/li/span/span[1]/i/text()').extract()
for i in range(1,11):
print(name_list[i-1], ': ',title_list[i-1])

然后在Pycharm里打开命令行界面,输入scrapy list可以列出当前爬虫项目下所有的爬虫文件,这里只有一个爬虫文件huyalol。

然后在命令行界面输入scrapy crawl huyalol,就可以运行我们的爬虫了,结果如下:

三、遇到的问题及解决办法

(1)利用xpath获取不到数据,反复检查代码之后,发现是引号出了问题

”//*[@id="js-live-list"]/li/a[2]/text()“

这里两端要用单引号,因为中间使用了双引号。

(2)根据教程上把@id="js-live-list"改成@class=“title new-clickstat”后获取不到数据,这个应该注意一下。

(3)在纠正上述问题后还是没有得到数据

解决办法:把settings.py里的ROBOTSTXT_OBEY = True改成ROBOTSTXT_OBEY = False

【Python3爬虫】第一个Scrapy项目的更多相关文章

  1. 亲测——pycharm下运行第一个scrapy项目 ©seven_clear

    最近在学习scrapy,就想着用pycharm调试,但不知道怎么弄,从网上搜了很多方法,这里总结一个我试成功了的. 首先当然是安装scrapy,安装教程什么的网上一大堆,这里推荐一个详细的:http: ...

  2. scrapy(一)建立一个scrapy项目

    本项目实现了获取stack overflow的问题,语言使用python,框架scrapy框架,选取mongoDB作为持久化数据库,redis做为数据缓存 项目源码可以参考我的github:https ...

  3. 3.第一个scrapy项目

    第一个scrapy项目 1. 创建scrapy项目 1.1 创建项目三剑客 这里的三剑客指的是:创建项目以及运行项目的三条命令 1.1.1 创建项目 scrapy stratproject 项目名称 ...

  4. 创建第一个Scrapy项目

    d:进入D盘 scrapy startproject tutorial建立一个新的Scrapy项目 工程的目录结构: tutorial/ scrapy.cfg # 部署配置文件 tutorial/ # ...

  5. 新建一个scrapy项目

    此次是做一个豆瓣的top250信息的抓取 首先打开pycharm 在pycharm的下端的Terminal中输入scrapy startproject douban 此时系统就生成了以下文件(spid ...

  6. 搭建第一个scrapy项目的常见问题

    错误1:在执行 scrapy crawl spider名命令的时候 出现了ImportError:DLL load failed: %1不是有效的win32程序错误 这是因为pywin32的版本安装错 ...

  7. 【Python3爬虫】Scrapy入门教程

    Python版本:3.5            系统:Windows 一.准备工作 需要先安装几个库(pip,lxml,pywin32,Twisted,pyOpenSSL),这些都比较容易,如果使用的 ...

  8. Python Scrapy项目创建(基础普及篇)

    在使用Scrapy开发爬虫时,通常需要创建一个Scrapy项目.通过如下命令即可创建 Scrapy 项目: scrapy startproject ZhipinSpider 在上面命令中,scrapy ...

  9. 零基础写python爬虫之使用Scrapy框架编写爬虫

    网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...

随机推荐

  1. iOS 轻击、触摸和手势的检测

    一.检测捏合手势( UIPinchGestureRecognizer):  //设定一个实例变量存储手指之间的其起始距离 @property (assign, nonatomic) CGFloat i ...

  2. pip install –r ./requirements.txt 报错 改成 pip install -r requirements.txt 成功

    Invalid requirement: '–r'Traceback (most recent call last): File "/home/dev/.pyenv/versions/3.6 ...

  3. Windows本地代码仓库使用连接教程

    目录 软件安装 修改语言为中文 克隆远程仓库 文件上传教程 软件安装 安装Git(软件下载链接) 根据自己的系统选择对应版本下载安装 安装TortoiseGit(软件下载链接) 1.下载完毕解压文件夹 ...

  4. Bad Hair Day [POJ3250] [单调栈 或 二分+RMQ]

    题意Farmer John的奶牛在风中凌乱了它们的发型……每只奶牛都有一个身高hi(1 ≤ hi ≤ 1,000,000,000),现在在这里有一排全部面向右方的奶牛,一共有N只(1 ≤ N ≤ 80 ...

  5. elasticsearch 文档资料

    1.Function Score Query 自定义查询评分 https://www.elastic.co/guide/en/elasticsearch/reference/current/query ...

  6. Eureka-Client(Golang实现)

    Eureka-Client Golang实现eureka-client 原理 根据Java版本的源码,可以看出client主要是通过REST请求来与server进行通信. Java版本的核心实现:co ...

  7. Spring 复习第一天

    一.Sping的优点 1.方便解耦,简化开发 ----Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理. 2.AOP编程的支持 ----Spring提供面向切面编程, ...

  8. nginx参数 uri和request_uri讨论

    uri可以输出rewrite后的uri不带参数,要用args查看 request_uri 是请求的完整的uri带参数

  9. SpringBoot项目的创建流程(初步)

    小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说过“约定大于配置”这样一句话,就是说系统,类库,框架应该假定合理的默认值,而非要求提 ...

  10. win10常用详细快捷键大全

    • 贴靠窗口:Win +左/右> Win +上/下>窗口可以变为1/4大小放置在屏幕4个角落• 切换窗口:Alt + Tab(不是新的,但任务切换界面改进)• 任务视图:Win + Tab ...