零基础
用python( scrapy库)编写爬虫程序,抓取新浪天气(http://weather.sina.com.cn)中,您所在的城市的未来10天的天气预报,包括温度,风向等
1.使用 scrapy:安装scrapy,cmd中输入:pip install scrapy
2. 创建工程:首先,在D盘下,新建一个spider1文件夹,存放我们的爬虫程序。
在spider1文件夹下,新建一个day1文件夹(用代码新建,存放爬虫程序),通过
①.在cmd中,进入spider1文件夹;②.cmd中输入:scrapy startproject day1
结果如下图:
3.正式编写爬虫程序
①在day1文件夹下,找到items.py(D:\spider1\zuoye1\zuoye1\items.py),打开编写item.py,
功能:# 明确目标(Items):明确你想要抓取的目标
代码如下:
import scrapy
class Day1Item(scrapy.Item):
# 温度
temperature = scrapy.Field()
# 风向
wind = scrapy.Field()
#城市
city = scrapy.Field()
pass
②在D:\spider1\day1\day1\spiders下面新建sina weather.py,如下图
打开sina weather.py编写代码
# -*- coding: utf-8 -*-
importscrapy
from day1.items import Day1Item # day1是文件夹的名,Day1Item是items.py中的类class名
class weatherSpider(scrapy.spiders.Spider): #weatherSpider是自定义的名
name = "sina" #sina是自定义的名
allowed_domains = ['sina.com.cn'] #sina.com.cn是限定在这个网站的范围之内爬虫
start_urls = ['http://weather.sina.com.cn/xian'] #开始爬虫的网址
def parse(self, response):
item = Day1Item() #items.py中的类名
item['city'] = response.xpath('//*[@class="slider_ct_name"]/text()').extract()#xpath的编写,查看sina天气网页,按F12查看HTML源代码
return item
③D:\spider1\day1\day1下面,编写settings.py
BOT_NAME = 'day1'
SPIDER_MODULES = ['day1.spiders']
NEWSPIDER_MODULE = 'day1.spiders'
FEED_URI=u'file///D:/spider1/zuoye1/DATA1.txt' #爬到的东西放在DATA1.txt中,路径自己定义
FEED_EXPORT_ENCODING = 'utf-8' #解决scrapy 抓取的中文结果乱码
4.代码编写完毕,开始爬虫。在cmd中,进入项目根目录D:\spider1\day1,(必须进入根目录)输入:scrapy crawl 文件名 #文件是sina weather.py里的存储name ="sina"
本例为:scrapy crawl sina
tips:采用pycharm编写程序,但调试程序链接到的是anaconda的Python.exe,因为anaconda自带好多库
1.安装Anaconda
2.安装Pycharm
3.在Pycharm的Files>>settings>>Project Interpreter>>Add local 里面添加Anaconda python.exe. 应用之后就可以调用各种Anaconda的库啦