python遇到的部分错误及解决方案
那么在要运行的代码开头加入下面的话
import sys
sys.path.append('..')
2 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5
这类报错是说你再使用中文,目标位置的编译方式可能是 gbk ,也可能是UTF-8,而编译器 Encoding 的方式是gbk或UTF-8之类的,但二者不匹配,所以你需要修改成合适的编译方式,使之尽量一致!
3 TypeError: Object of type date is not JSON serializable
类型不对,表示不是JSON序列应该有的类型,也就是说不是字符串,因此,可以加入str,使其正确!
4 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 16: illegal multibyte sequence
只需要在open函数参数中添加“encoding=‘utf-8’
5 Navicat上数据库如何找序列
在Navicat上选中数据库,然后点击其他--选择序列可以找到
6 数据库上的序列和视图是干什么的?
序列作为代理主键,唯一识别;用于记录数据库中最新动作的语句,只要语句有动作(I/U/D等),sequence号都会随着更新,所以我们可以根据sequence号来select出更新的语句。
7 error: src refspec master does not match any.
错误:SRC ReFSPEC主控器不匹配任何。
错误:未能将某些引用推到'git @ Github.com:HaHaa/ftpMal.git’
也就是仓库为空。
因此,执行以下:
git add 文件
git commit -m "注释"
git remote add origin xxx.git
git push -u origin master
注意:git push -u origin master这条命令执行后,以后可以直接使用不带参数的git pull/push,
其中,-u是 --set-upstream 它将会合并默认的那条分支。
下次直接用:
git pull/push
8 python中 future 库是干什么的?
python中 __future__ 库是用来导入之后版本的函数的
9 json.decoder.JSONDecodeError: Expecting value: line 30 column 18 (char 711)
json文件缺少逗号
10 为什么bat文件手动执行可以运行,但是任务计划程序却无法正确打开
在bat文件中缺少cd到指定目录的操作
11 TypeError: Object of type date is not JSON serializable
json.dumps()不能对date时间格式数据进行转化
只要把他转化为str格式就可以了
12 python日期按月份相加减
import datetime
from dateutil.relativedelta import relativedelta
datetime_now = datetime.datetime.now()
datetime_three_month_ago = datetime_now - relativedelta(months=3)
print (datetime_three_month_ago)
13 TypeError: can only concatenate str (not "NoneType") to str
空值无法进行类型转换
14 microsoft .net framework异常
我删除了docker,当然可能有更好的解决办法!
15 Linux 运行py文件报错:Error while finding module specification for 'xxx.py' (ModuleNotFoundError: path attribute not found on 'xxx' while trying to find 'xxxx.py')
要么把"-m"删除,要么删除".py"后缀,问题就迎刃而解了
16 python中PyV8库导入不了
试下这个网址 https://code.google.com/archive/p/pyv8/downloads 如果不行,把https的s删掉!
17 爬虫时,参数是payload形式,爬取异常
requests.post(url=url, headers=headers, data=json.dumps(form_data), timeout=60)使用这种方式爬取
18 爬虫解析url的时候,python2使用urllib.urlencode(formdata),那么,在python3中使用什么?
python3中使用urllib.parse.urlencode(formdata)
19 爬虫时面对cookie如何处理?
import execjs
# 使用这个库,直接用python执行js代码
20 使用execjs过程中报错如下: execjs._exceptions.ProgramError: ReferenceError: window is not defined
windows没有定义,则定义windows或删掉这部分
DOWNLOAD_DELAY = 0.25 # 250 ms of delay 这是设置的固定延时时间
如果想进一步降低被封ip的风险,需要使用随机延时
写一个random_delay_middleware.py文件,如下:
# -*- coding:utf-8 -*-
import logging
import random
import time
class RandomDelayMiddleware(object):
def __init__(self, delay):
self.delay = delay
@classmethod
def from_crawler(cls, crawler):
delay = crawler.spider.settings.get("RANDOM_DELAY", 10)
if not isinstance(delay, int):
raise ValueError("RANDOM_DELAY need a int")
return cls(delay)
def process_request(self, request, spider):
delay = random.randint(0, self.delay)
logging.debug("### random delay: %s s ###" % delay)
time.sleep(delay)
custom_settings = {
"RANDOM_DELAY": 3,
"DOWNLOADER_MIDDLEWARES": {
"middlewares.random_delay_middleware.RandomDelayMiddleware": 999,
}
}
#这是随机整数延时,更好的方法是改一下,让他随机小数延时

浙公网安备 33010602011771号