【Python3爬虫】第一个Scrapy项目
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项目的更多相关文章
- 亲测——pycharm下运行第一个scrapy项目 ©seven_clear
最近在学习scrapy,就想着用pycharm调试,但不知道怎么弄,从网上搜了很多方法,这里总结一个我试成功了的. 首先当然是安装scrapy,安装教程什么的网上一大堆,这里推荐一个详细的:http: ...
- scrapy(一)建立一个scrapy项目
本项目实现了获取stack overflow的问题,语言使用python,框架scrapy框架,选取mongoDB作为持久化数据库,redis做为数据缓存 项目源码可以参考我的github:https ...
- 3.第一个scrapy项目
第一个scrapy项目 1. 创建scrapy项目 1.1 创建项目三剑客 这里的三剑客指的是:创建项目以及运行项目的三条命令 1.1.1 创建项目 scrapy stratproject 项目名称 ...
- 创建第一个Scrapy项目
d:进入D盘 scrapy startproject tutorial建立一个新的Scrapy项目 工程的目录结构: tutorial/ scrapy.cfg # 部署配置文件 tutorial/ # ...
- 新建一个scrapy项目
此次是做一个豆瓣的top250信息的抓取 首先打开pycharm 在pycharm的下端的Terminal中输入scrapy startproject douban 此时系统就生成了以下文件(spid ...
- 搭建第一个scrapy项目的常见问题
错误1:在执行 scrapy crawl spider名命令的时候 出现了ImportError:DLL load failed: %1不是有效的win32程序错误 这是因为pywin32的版本安装错 ...
- 【Python3爬虫】Scrapy入门教程
Python版本:3.5 系统:Windows 一.准备工作 需要先安装几个库(pip,lxml,pywin32,Twisted,pyOpenSSL),这些都比较容易,如果使用的 ...
- Python Scrapy项目创建(基础普及篇)
在使用Scrapy开发爬虫时,通常需要创建一个Scrapy项目.通过如下命令即可创建 Scrapy 项目: scrapy startproject ZhipinSpider 在上面命令中,scrapy ...
- 零基础写python爬虫之使用Scrapy框架编写爬虫
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...
随机推荐
- Windows本地代码仓库使用连接教程
目录 软件安装 修改语言为中文 克隆远程仓库 文件上传教程 软件安装 安装Git(软件下载链接) 根据自己的系统选择对应版本下载安装 安装TortoiseGit(软件下载链接) 1.下载完毕解压文件夹 ...
- DevExpress内 GridControl中复选框值问题
在DevExpress的 GridControl内的复选柜勾选后,界面看到是勾选状态,但对应的DataView的值仍未变,在以下事件内处理 在对应的DataView内的 CellValueChangi ...
- tyflow birth节点
0-50帧,持续出生5颗粒子,若范围为0-0,5颗粒子将在第一帧全部出生 每一帧出生5颗粒子,直到50帧结束 连续发射,在0-500帧范围内,每5颗粒子出生后,继续出生5颗 5颗粒子出生后持续50帧, ...
- 【技术分享】BurpSuite 代理设置的小技巧
作者:三思之旅 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 在Web渗透测试过程中,BurpSuite是不可或缺的神器之一.BurpSuite的核心是 ...
- RaspberryPi上建立wordpress
准备工作: 1.RaspberryPi 3代 B型 2.可用内存卡 3.读卡器 4.DiskGenius 5.Win32 Disk Imager 6.可用局域网 7.Xshell 和 Xftp 8.官 ...
- [tkinter]为列表框添加滚动条
为了给列表框配备滚动条,看来很多别人的博客 终于解决了问题 ,现在我总结一下 from tkinter import * root = Tk() lb = Listbox(root) scr = Sc ...
- XLua基础
一.Lua文件加载 1).Resources加载xluaTest文件 2).通过loader加载 3).自定义Loader(相当于Resources加载和loader加载结合) 先自定义Loa ...
- Mesos源码分析(3): Mesos Master的启动之二
2. process::firewall::install(move(rules));如果有参数--firewall_rules则会添加规则 对应的代码如下: // Initialize fire ...
- Spark入门PPT分享
本篇PPT是我在公司内部进行Spark入门的分享,内容包含了Spark基本概念.原理.Streaming.SparkSQL等内容,现在分享出来. 下载请点击这里
- java并发面试
1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...