我正在使用请求来抓取网站。 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 ='的行,并希望处理它后面的链接(在代码之后)。()封装的部分应该是什么回来了,对吗?
有人看到错误吗?在
答案 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)