1.安装scrapy
首先安装Scrapy框架,可以使用pip3 install scrapy,安装scrapy时会自动安装twisted,但是可能会安装不成功,可以下载一个你的python对应版本的twisted(可以去这个网站下载点击下载twisted),使用pip3来安装它,再使用pip3 install scrapy安装scrapy.
2.网页源码
使用scrapy爬取七月在线网站课程数据,我们先来看一下网页的源码:
截图中的红框1,2,3分别对应上面3门课程,红框4是1的子标签,下面我们用scrapy框架抓取该网页中的每门课程的名字和介绍以及开班时间,分别对应到3个红椭圆圈住的部分。
3.代码实现
import scrapy
class Spider(scrapy.Spider):
name = "spider" #为该程序起个名字
start_urls = ['https://www.julyedu.com/category/index',] #将要访问的url
def parse(self, response):
#用xpath查找出class="course_info_box"的dir标签,生成的是一个列表
for julyedu_class in response.xpath('//div[@class="course_info_box"]'):
#找到a标签下的h4标签的text内容,extract_first()表示找到第一个
print(julyedu_class.xpath('a/h4/text()').extract_first())
print(julyedu_class.xpath('a/p[@class="course-info-tip"][1]/text()').extract_first())
print(julyedu_class.xpath('a/p[@class="course-info-tip info-time"][1]/text()').extract_first())
print("~~~~~~~~~~~~~~~") #打印间隔,便于区分每门课程
其中的xpath可以通过选中标签,右键–>copy–>copy xpath来获得,如下图:
4.运行代码
打开windows的cmd命令行,执行runspider spider.py,其中spider.py是刚才程序保存的文件。
运行结果如下: