备忘录

1,一个url里只能出现一次?号,?后面接参数,多个参数之间用&符号分开

2, 请求splash,http://192.168.99.100:8050,docker虽然是运行了,但是ip不是本机ip,而是可以互通的ip,默认192.168.99.100

3, splash为了响应速度,iiframe默认不加载。好像没法处理,解决方法是 无头浏览器【例如chrome】 或者 使用scrapy再去请求iframe的url

4,scrapy.Request(dont_filter=True)    dont_filter默认位False  :去重

5, scrapy     pipelines     process_item(self ,item , spider) 一定要  return item,不然后边的pipeline拿不到   item

6,pycharm打开terminal ,左下角小窗

7,Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句

8,空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

9,Python可以在同一行中使用多条语句,语句之间使用分号(;)分割

10,print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

11,注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

12,Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

13,print (str[0:-1]) # 输出第一个到倒数第二个的所有字符

14,tup1 = () # 空元组tup2 = (20,) # 一个元素,需要在元素后添加逗号

15,user=selector.xpath('normalize-space(//*[@id="Con"]/tr[1]/th/text())')   

16

from faker import Faker
faker = Faker()
for i in range(10):
user_agent = faker.chrome()
print(user_agent)


 17,scrapy.settings

RETRY_ENABLED = False

RETRY_TIMES = 5          

RETRY_PRIORITY_ADJUST = -2

18,   开始符合结束符  allow=r'^https://www.pexels.com/photo/.*/$'

19,复制路径快捷键的方法,当你右键程序之前首先按住shift键,然后在右键点击,我们就会在出现的菜单中看见复制为路径这个功能

 经过反复测试得出以下结论:1 手动输入或文件夹地址栏复制的路径100%正常运行。2,从文件夹右键单击属性获取的路径基本会报错,偶尔会成功运行
# IMAGES_STORE = r'C:/Users/wo/Desktop/var'##正常运行
# IMAGES_STORE =r'‪C:\Users\wo\Desktop\var'##文件夹属性复制路径,报错
# IMAGES_STORE =r'C:\Users\wo\Desktop\var'##手动输入路径,文件夹地址栏复制路径,正常运行

 20,图片管道下载会默认压缩文件,文件管道能无损下载源文件

 21,os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组

22,《UrlLengthMiddleware>

URLLENGTH_LIMIT  默认是2083

 <HttpErrorMiddleware>

Spider中设置#优先级高

handle_httpstatus_all = True   默认False 

handle_httpstatus_list = [404,302] 默认200系列

settings中设置#优先级低

HTTPERROR_ALLOW_ALL = True  

HTTPERROR_ALLOWED_CODES = [404,302]  

<DepthMiddleware>

DEPTH_LIMIT  深度限制,默认为0(无限制)

DEPTH_STATS_VERBOSE 深度状态收集 默认False不开启

DEPTH_PRIORITY  深度优先级  +广度优先 –深度优先,默认空

<RetryMiddleware>

RETRY_ENABLED #默认开启 RETRY_TIMES # 默认:2 

RETRY_HTTP_CODECS #默认:500,502,503,504,408 

RETRY_PRIORITY_ADJUST #默认:­1优先级校正 

Scrapy.Request(start_url,priority=0)优先级默认位0

<RedirectMiddleware>

REDIRECT_ENABLED # 默认开启 

REDIRECT_MAX_TIMES # 默认:20 

REDIRECT_PRIORITY_ADJUST # 默认:+2

<其他下载器配置>

DOWNLOAD_TIMEOUT # 默认:180 【单位秒】 

DOWNLOAD_MAXSIZE # 默认:1073741824(1024MB)【单位字节】 DOWNLOAD_WARNSIZE # 默认值:33554432(32MB)【单位字节】 DOWNLOADER_STATS # 默认:True 【爬虫运行结束后的输出结果】   

DOWNLOAD_DELAY # 默认:0 【单位秒】

23,

A
  
的矩阵,B
  
的矩阵,那么称
  
的矩阵C为矩阵AB的乘积,记作
  
,其中矩阵C中的第
 
行第
  
列元素可以表示为:
如下所示:

 

 

 

 24, 一般都是\n换行
记事本这个智障,默认编码,换行是\r\n 
25,先回答问题from . import 表示从当前文件的路径(.)导入所有()
其实不光是python,或者说不光是编程语言,对于操作系统来说.代表的都是当前路径,*在正则表达式表示的是任意文件。
26,Insert键的意思是插入覆盖,默认是插入,意思是不影响后面的字,当按下Insert键后是覆盖,意思是覆盖掉光标以后的内容,再按下Insert键后还原为插入。在文档中,有两种输入方式,一种是插入式输入,另一种是覆盖式输入,切换这两种输入方式就用INSERT键。 举例: 光标移动到“举例”的中间,插入式输入法输入“个”,结果为“举个例”; 覆盖式输入法输入“个”,结果为“举个”。
27,yield 后边不能print()


















posted on 2018-06-25 19:59  shiqinying  阅读(576)  评论(0)    收藏  举报

导航