Python语法错误:语法无效 - if-codesyntax似乎是正确的

时间:2012-06-15 13:33:53

标签: python html web-scraping python-requests

我正在使用请求来抓取网站。 html的内容成功保存在变量r中,但在if语句中我得到了上述错误

[...]
for line in r:  
    link = re.findall(r ("""onclick="window.location.href='([^'])'""",line)
    if link: 
        print ('something')
        cmd = ('some commands to get info page') 
        call(cmd,shell=True)

        download = re.sub(something)
        cmd = ('some commands to download the file') 
        call(cmd,shell=True)
r.close()

我在文档中查了一下,语法似乎是正确的。然后我怀疑错误是在之前的行。在这里,我搜索带有短语 onclick =“window.location.href ='的行,并希望处理它后面的链接(在代码之后)。()封装的部分应该是什么回来了,对吗?

有人看到错误吗?在

3 个答案:

答案 0 :(得分:2)

也许括号?

#                1  2                                                 2                   
link = re.findall(r ("""onclick="window.location.href='([^'])'""",line)

看起来你忘了关闭findall的支架。

答案 1 :(得分:0)

您似乎有不匹配的括号和不匹配的引号。下面,我把它们排成一行。这是否按预期工作?

#                1  2                                  3    3           21
#                    123        4                              4321
link = re.findall(r ("""onclick="window.location.href='([^'])'\"""",line))

答案 2 :(得分:0)

如果你将模式分离到它自己的行,那么就可以清楚地表明问题实际上只是引用。尝试将它分开:

for line in r:
    pattern = r"onclick=\"window.location.href='([^'])'"
    link = re.findall(pattern, line)