安装scrapy(使用清华镜像)
打开PyCharm,安装scrapy框架
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy
新建一个名为python_scrapy的项目
scrapy startproject python_scrapy
完成后如下
目录介绍
- scrapy.cfg: 项目的配置文件。
- mySpider/: 项目的Python模块,将会从这里引用代码。
- mySpider/items.py: 项目的目标文件。
- mySpider/pipelines.py: 项目的管道文件。
- mySpider/settings.py: 项目的设置文件。
- mySpider/spiders/: 存储爬虫代码目录。
编写爬虫名为itcast的爬虫。语法如下:
cd mySpider #首先进入该文件夹
scrapy genspider itcast "itcast" #创建爬虫
修改Itrms.py,代码如下:
class PythonScrapyItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
name = scrapy.Field()
title = scrapy.Field()
info = scrapy.Field()
修改itcast代码如下:
import scrapy
# from scrapy.item import PythonScrapyItem
from ..items import *
class ItcastSpider(scrapy.Spider):
name = 'itcast'
allowed_domains = ['itcast.cn']
start_urls = ['http://www.itcast.cn/channel/teacher.shtml']
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
items = []
for each in response.xpath("//div[@class='li_txt']"):
item = PythonScrapyItem()
name = each.xpath("h3/text()").extract()
title = each.xpath("h4/text()").extract()
info = each.xpath("p/text()").extract()
# xpath返回的是包含一个元素的列表
item['name'] = name[0]
item['title'] = title[0]
item['info'] = info[0]
items.append(item)
# 直接返回最后数据
return items
执行代码:
scrapy crawl itcast #itcast为爬虫名称