08200307 2017-08-11 02:48 采纳率: 0%
浏览 4036

python3爬取豆瓣读书的API报错400,bad request

使用如下python代码读取配置文件中的linkLists(https://api.douban.com/v2/book/1006639),每次爬取到100条左右时就报错bad request

请教各位大神有木有遇到过这种情况,该怎么解决

import json
import pymysql
import random
import time
import urllib
from urllib import request

import doubans.config.linkconfig

conn = pymysql.connect( user="root",password="root",database="python",charset='utf8')
cur = conn.cursor()

def getDetail(url):
req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36')
try :
res = urllib.request.urlopen(req)
jsondata = res.read().decode("UTF-8")
res.close()
result = json.loads(jsondata)
except urllib.error.URLError as e :
print(e.reason)

if ('title' in result.keys()):
    title = result["title"]
else:
    title = ""

if ('isbn13' in result.keys() and  'ibsn13' != ""):
    isbn = result["isbn13"]
else:
    isbn = result["isbn10"]

l = []
l.append([title,isbn])
sql = "INSERT INTO allbooks values(%s,%s)"
cur.executemany(sql, l)
conn.commit()

for i in range(0,len(doubans.config.linkconfig.linkLists)):
print(doubans.config.linkconfig.linkLists[i])
getDetail(doubans.config.linkconfig.linkLists[i])
time.sleep(int(format(random.randint(0, 9))))

报错信息如下
Traceback (most recent call last):
File "F:/Python/doubans/getDetail.py", line 143, in getDetail(doubans.config.linkconfig.linkLists[i])
File "F:/Python/doubans/getDetail.py", line 27, in getDetail if ('title' in result.keys()): UnboundLocalError: local variable 'result' referenced before assignment
Bad Request

  • 写回答

4条回答

  • x小小书童 2017-08-11 03:06
    关注

    你看看是不是可以加个代理ip池,可能会有效果

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog