yxhuang085 发表于 2021-11-28 00:10

小白求助下错误的提示如何更正

本人小白一枚,在网络上看到一段如何抓取网页的python代码,运行起来会出现提示,但不知如何更正,烦请指教,谢谢 !
import urllib.request as req
baseurl = 'http://c.biancheng.net/view/'
basef='e:\\clan'
for i in range(2999):
    try:
      url=baseurl+str(i+1)+'.html'
      webpage = req.urlopen(url) # 根据超链访问链接的网页
      data = webpage.read() # 读取超链网页数据
      data = data.decode('utf-8') # byte类型解码为字符串
      f=basef+'\'+str(i+1)+'.html'
      txtf=open(f,'w',encoding='utf-8')
      txtf.write(data)
      txtf.close()
    except:
      print('失败爬取html:'+str(i+1)+'\n')

File "C:\Users\YXHuang\Desktop\test.py", line 10
    f=basef+'\'+str(i+1)+'.html';
                               ^
SyntaxError: unterminated string literal (detected at line 10)

kk159 发表于 2021-11-28 09:36

不是显示了?第10行字符转义错误

冥界3大法王 发表于 2021-11-28 09:44

str(i+1)
外面是转字符str
里边却有个变量
好像有点不合理

surepj 发表于 2021-11-28 09:51

本帖最后由 surepj 于 2021-11-28 09:56 编辑

第10行,可以改为这个试试
f=f'{basef}\{i+1}.html'

SunsetShimmer 发表于 2021-11-28 10:34

复制代码的时候第十行后面似乎有一个不明字符
>>> for i in range(2999):
...   try:
...         f=basef+'\'+str(i+1)+'.html'
File "<stdin>", line 3
    f=basef+'\'+str(i+1)+'.html'
                              ^
SyntaxError: EOL while scanning string literal

把那行删掉然后重新输入一遍 不要复制

yxhuang085 发表于 2021-11-28 23:53

surepj 发表于 2021-11-28 09:51
第10行,可以改为这个试试

{:1_893:}非常感谢,现在可以正常抓取了。
页: [1]
查看完整版本: 小白求助下错误的提示如何更正