scrapy基础学习

1、安装scrapy框架
⑴Pip install scrapy->VC++14.0 Twisted(安装时容易出现问题:所以采用离线安装)
⑵在cmd运行scrapy命令时,要找到exe对应的文件夹,虽然安装目录在F:\python38\Lib\site-packages中,但是scrapy.exe在F:\python38\Scripts目录下,因此要在F:\python38\Scripts执行命令。
在这里插入图片描述

⑶运行scrapy命令,出现以上图示,并不代表安装成功。用scrapy bench命令测试是否真的成功。
⑷安装时易出现的错误
pip install scrapy ->VC++14.0 Twisted
解决办法:离线安装 pip install xxx.whl
scrapy bench 运行的时候报错–>32
解决办法:pip install pywin32


二、创建项目
1、创建scrapy项目
scrapy startproject testspider
创建项目成功以后会有如下界面:
在这里插入图片描述
项目结构如图所示:
在这里插入图片描述

2、创建爬虫项目(注意项目名和爬虫名一定不同,创建爬虫名字的时候需要将目录切换到\reviewspider文件夹以下)
cd reviewspider
//创建爬虫:scrapy genspider 爬虫名 域名
scrapy genspider 21centry 21cnjy.com
创建成功以后,spiders文件夹中生成 21centry.py文件
在这里插入图片描述
3、修改配置settings
(1)ROBOTSTXT_OBEY = True,将其改为False,并去掉其注释。
(2)修改USER-AGENT,并去掉其注释。
例如:利用google查找一个useragent,将其复制到settings里面的USER-AGENT
在这里插入图片描述
4、分析页面
在a21centrySpider.py中编写代码,进行页面分析
例如:在console中打印相关的信息
print(response.xpath(‘爬取内容的xpath’).extract())
其中,xpath可以通过页面进行拷贝,但需要注意的是拷贝的xpath有时需要细微调整才能正常运行。
在这里插入图片描述
例如:xpath(’//*[@id=“con-ar”]/div/div/div/table/tbody/tr/td/a/text()’).extract())
‘)
xpath返回的是列表类型。
text()提取文本:
extract()将xpath转换为Unicode字符串,返回的仍然是列表,取值时注意使用列表的方法进行取值。
5、爬取内容
爬取命令:scrapy crawl 21centry
6、取消提示多余的信息提示:在setting配置文件中加入:LOG_LEVEL=‘WARN’
7、爬取网站时,编码问题
传一个参数的情况的实例:
start_urls = [‘https://www.21cnjy.com/search/asset?keyword=%s&charset=utf-8’ % subject ]
传二个参数的情况的实例:
start_urls = [‘https://www.21cnjy.com/search/asset?keyword=%s&charset=%s’ % (subject, ‘utf-8’)]
编码的转换实例:
s = ‘信息技术’
print(‘使用utf-8显示:’, s.encode(‘utf-8’))
print(‘使用gbk显示:’, s.encode(‘gbk’))
打印结果如下:
使用utf-8显示:b’\xe4\xbf\xa1\xe6\x81\xaf\xe6\x8a\x80\xe6\x9c\xaf’
使用gbk显示: b’\xd0\xc5\xcf\xa2\xbc\xbc\xca\xf5’
u’\xd6\xb0\xce\xbb\xc3\xe8\xca\xf6’

注意事项:1、python3默认的编码和解码规则都是UTF-8,b'前缀,表示python中的bytes类型,b不可以省略
					import sys
                   print(sys.stdout.encoding)#打印系统编码方式
				 2、\x表示十六进制
				 3、u'\xd6\xb0\xce\xbb\xc3\xe8\xca\xf6'前缀u表示python2中的uicode前缀的缩写

9、RFC3986文档对url规范了哪些符号可以出现在url中,哪些字符不能出现在url中等。相关链接:
https://www.cnblogs.com/panchanggui/p/9436348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值