内容来源
中国大学慕课 北理工 嵩天老师
Python网络爬虫与信息提取
学习笔记
步骤1:建立一个Scrapy爬虫工程
1、通过下面的语句建立一个scrapy工程(注意路径位置):
scrapy startproject python123demo
2、scrapy工程层次图
3、工程文件注解
步骤2:在工程中产生一个 Scrapy爬虫
在命令行中执行以下的语句,生成一个爬取“python123.io”网页的.py文件
scrapy genspider demo python123.io
此文件可手动生成,采用当前语句生成的文件效果:
步骤3:配置产生的spider爬虫
当前代码功能为:爬取一个网页并保存
# -*- coding: utf-8 -*-
import scrapy
class DemoSpider(scrapy.Spider):
name = "demo"
#allowed_domains = ["python123.io"]
start_urls = ['https://python123.io/ws/demo.html']
def parse(self, response):
fname = response.url.split('/')[-1]
with open(fname, 'wb') as f:
f.write(response.body)
self.log('Saved file %s.' % self.name)
步骤4:运行爬虫,获取网页
scrapy crawl demo
模仿练习
练习内容:爬取CSDN官网并保存
1、在指定目录下手动生成“dome1.py”文件(采用上面步骤2实现亦可)
# -*- coding: utf-8 -*-
import scrapy
class DemoSpider(scrapy.Spider):
name = "demo1"
#allowed_domains = ["python123.io"]
#start_urls = ['https://python123.io/ws/demo.html']
start_urls = ['https://www.csdn.net']
def parse(self, response):
#fname = response.url.split('/')[-1] #提取文件名
#fname = 'csdn' #不说明保存为什么类型文件,可用word打开
fname = 'csdn.html' #最后生成网页文件
with open(fname, 'wb') as f: #将返回的内容保存为文件
f.write(response.body)
self.log('Saved file %s.' % fname)
2、在命令提示符窗口对应路径下,运行以下语句
scrapy crawl demo1
3、运行后生成的文件:
4、部分结果:
(1)网页打开
(2)word打开“csdn”文件
(3)此时的CSDN首页
可见,掌握这个方法,即可较为轻松地获取自己想要网页的图片、链接等信息!