最近公司项目需求要去网站里爬一些数据,然后就用到了Scrapy,
在安装Scrapy遇到很多坑。
这里介绍一下我总结的最简单的安装方法。
首先我用的是python 2.7,安装环境是windows
这个是我看到的教程https://www.yiibai.com/scrapy/scrapy_environment.html,特别繁琐,让人装下去的欲望都没有,
然后去网上找啊找,最后自己总结的方法。
1,安装python2.7
2,pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Scrapy
https://pypi.tuna.tsinghua.edu.cn/simple是清华大学的pip源,它是官网pypi的镜像,每隔5分钟同步一次.
可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Scrapy,这样就会从清华这边的镜像去安装Scrapy库。
好了,可以开心的爬虫了。
付一小段代码大家可以参考下:
# -*- coding: UTF-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") import json from scrapy.selector import Selector import os def getdetail( str1): item = {} response = Selector(text = str1) items = response.xpath('//div[@class="cd-cardlists"]').extract() sel = Selector(text=items[0]) strArr = sel.xpath('//span[@data-extendbtn="1"]').extract() for s in strArr: print s basicInfos = sel.xpath('//ul/li').extract() jsonBasic = {} for s in basicInfos: print 'basic info:' print s s1 = Selector(text=s) keystrArr = s1.xpath('//span/small/text()').extract() keystr = '' if len(keystrArr) > 0: keystr = keystrArr[0].strip() print 'key:', keystr valuestrArr = s1.xpath('//span[@class="sw-text"]/text()').extract() if len(valuestrArr) > 0: valuestr = valuestrArr[0].strip() print 'value: ', valuestr if len(keystr) > 0: jsonBasic[keystr] = valuestr item['basicInfo'] = jsonBasic resultStr = json.dumps(dict(item), ensure_ascii=False) + "\n" print 'basic:', resultStr with open('apkdetailappchina.txt', 'a+') as f: # f.write(json.dumps(item, encoding="UTF-8", ensure_ascii=False)) str = json.dumps(dict(item), ensure_ascii=False) + "\n" str = unicode.encode(str, 'utf-8') f.write(str) print str #读取网页文件,如html def loopfolder(path): cnt = 0 for subdir, dirs, files in os.walk(path): for file in files: if 'readme' in file: continue if cnt > 1: break; cnt += 1 with open(path+file) as f: getdetail(f.read().decode('utf-8')) folder = 'C:\Users\xxx\Desktop\WxAutoReply' loopfolder(folder)