python:
tuple list set dict range str 分片 [::] 推导函数:def 函数名称(参数):
实现函数体
参数种类:
必须参数
默认参数
关键参数
可变参数:tuple *参数名称 dict **kwargs
建议:默认参数一定要在必须参数之后定义,可变参数一定要定义在最后
tuple的可变参数要在字典在前
函数类型:
外部函数
内部函数
匿名函数 lambda
装饰函数 @
函数 总是要返回的 如果没有 return None 总是被返回
面向对象:
对象:已存在可被使用的实例 万物皆对象 模块 函数 变量 类 方法 都是对象
类(class):描述其他实例信息的对象
方法:用来定义其他实例行为的对象
方法与函数的区别:函数可对立定义和调用
方法不能独立定义也不能独立调用
stativmethod
classmedthod
属性:定义其他实例特征的对象
import scrapy 导入模块
class QuotesSpider(scrapy.Spider): # 继承了爬虫框架的蜘蛛
name = "quotes" #蜘蛛名 运行蜘蛛时需要用到
start_urls = [ #要抓取数据的网站的入口
'http://quotes.toscrape.com/tag/humor/',
]
蜘蛛的解析规则
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').extract_first(),
'author': quote.xpath('span/small/text()').extract_first(),
}
next_page = response.css('li.next a::attr("href")').extract_first()
if next_page is not None:
yield response.follow(next_page, self.parse) 根据提取到的url 继续爬取
在窗口中运行蜘蛛 : scrapy runspider spid文件名
爬取的信息存储为json格式的文件 :
import json
with open("tou.json") as f :
datas = json.load(f)
for d in datas:
print(d)
执行 scrapy runspider spider文件名 -o 文件名.json 语句 生成json文件 得到结果