首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python urllib2问题

python urllib2问题
EN

Stack Overflow用户
提问于 2011-06-28 06:04:53
回答 3查看 851关注 0票数 0

我正在尝试从url打印一些信息,但如果找到某个文本,我想跳过打印,我有:

代码语言:javascript
复制
import urllib2

url_number = 1
url_number_str = number
a = 1

while a != 10:
    f = urllib2.urlopen('http://example.com/?=' + str(url_number_str)
    f_contents = f.read()
    if f_contents != '{"Response":"Parse Error"}':
        print f_contents
        a += 1
        url_number_str += 1

因此,{"Response":"Parse Error"}是我想要查找的文本,以避免打印f.read()并加载下一个url (编号2)

EN

回答 3

Stack Overflow用户

发布于 2011-06-28 06:07:09

尽管你的问题有点不清楚,但试试这个:

代码语言:javascript
复制
f = urllib2.urlopen('http://example.com/?id=1000')
for line in f.readlines():
    if line != '{"Response":"Parse Error"}':
        print line

这个循环遍历网页中的每一行,并在'{"Response":"Parse Error"}'处停止。

编辑:没关系,这可能就是你想要的:

代码语言:javascript
复制
f = urllib2.urlopen('http://example.com/?id=1000')
data = f.read()
if data != '{"Response":"Parse Error"}':
    print data

这将打印整个网页,除非它是'{"Response":"Parse Error"}'

票数 0
EN

Stack Overflow用户

发布于 2011-06-28 06:09:51

read读取一块数据。此块的实际大小可能大于'{"Response":"Parse Error"}'

因此,您应该使用RE或strstr like在读取的数据中搜索字符串(参见@harpyon的答案)。

票数 0
EN

Stack Overflow用户

发布于 2011-06-28 08:56:44

我想这就是你想要的:

代码语言:javascript
复制
a = 1

while a != 100:
    f = urllib2.urlopen('http://example.com/?id=1000')
    f_contents = f.read()
    if f_contents != '{"Response":"Parse Error"}':
         print f_contents
    a += 1

不过,如果您不想获得相同的页面100次,那么您可能忘记了在URL中添加a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6499480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档