python 求路过的都来看看

scrapyshendamrwang 2010-11-06 03:38:10
import urllib
import re
for i in range(400,410):
sock=urllib.urlopen("http://baike.baidu.com/view/%s.html"%i)
html=sock.read()
r1=re.compile('(?<=title=").*[\x00-\xff](?=")')
list=r1.findall(html)
f=file('zhengze2.txt','w')
li=["向上跳转","添加到搜藏"]
for i in range(len(list)):
if list[i]==li[0]:
t=i
break
for i in range(len(list)):
if list[i]==li[1]:
s=i
break
for i in range(t,s):
f.write(list[i])
f.close()

这程序出错在哪啊 怎么就是写不进内容啊
...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
scrapyshendamrwang 2010-11-09
  • 打赏
  • 举报
回复
谢谢啊 我也学习了 分不多很感谢
  • 打赏
  • 举报
回复
其实最好不要频繁读写文件
在最外层循环前定义一个字符串Str=""
然后for i in range(t,s):
f.write(list1[i])
循环中f.write(list1[i])改成Str+=list1[i]
最后在外层循环结束后一次性写入Str到文件中


infofox 2010-11-06
  • 打赏
  • 举报
回复
f=file('zhengze2.txt','a')


模式可以为读模式
('r')、写模式('w')或追加模式('a')。事实上还有多得多的模式可以使用,你可以使用
help(file)来了解它们的详情。
my0n1y 2010-11-06
  • 打赏
  • 举报
回复
学习了!很有收获!!!!
  • 打赏
  • 举报
回复
你用f=file('zhengze2.txt','w')
'w'方式打开文件来写
每次都是覆盖之前的文件
所以只要你外层那个循环的最后一次写入时空的
你就会得到一个空文件
  • 打赏
  • 举报
回复

# -*- coding: cp936 -*-
import urllib
import re
f=file('zhengze2.txt','w')
for i in range(400,410):
sock=urllib.urlopen("http://baike.baidu.com/view/%s.html"%i)
html=sock.read()
#print html
r1=re.compile('(?<=title=").*[\x00-\xff](?=")')
list1=r1.findall(html)
#print list

li=["向上跳转","添加到搜藏"]
for i in range(len(list1)):
if list1[i]==li[0]:
t=i
break
for i in range(len(list1)):
if list1[i]==li[1]:
s=i
break
for i in range(t,s):
f.write(list1[i])
f.close()
  • 打赏
  • 举报
回复
python代码你必须缩进 不然谁都看不懂

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧