Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python中的html源代码中提取以下链接?_Python_Regex_Python 3.x_Web Scraping_Web Crawler - Fatal编程技术网

如何从python中的html源代码中提取以下链接?

如何从python中的html源代码中提取以下链接?,python,regex,python-3.x,web-scraping,web-crawler,Python,Regex,Python 3.x,Web Scraping,Web Crawler,以下是我的一些html源代码: 如果问题出在你的正则表达式上,那么我想你可以试试这个: link = re.search('^https?:\/\/.*[\r\n]*[^.\\,:;]', sourceCode) link = link.group() print (link) 如果问题是你的正则表达式,那么我想你可以试试这个: link = re.search('^https?:\/\/.*[\r\n]*[^.\\,:;]', sourceCode) link = link.group()

以下是我的一些html源代码:
如果问题出在你的正则表达式上,那么我想你可以试试这个:

link = re.search('^https?:\/\/.*[\r\n]*[^.\\,:;]', sourceCode)
link = link.group()
print (link)

如果问题是你的正则表达式,那么我想你可以试试这个:

link = re.search('^https?:\/\/.*[\r\n]*[^.\\,:;]', sourceCode)
link = link.group()
print (link)

比通过
regex
解析查询字符串更好的方法是使用
parseqs
函数(更安全的是,不需要
regex
fiddling,您就可以得到您想要的东西)():


比通过
regex
解析查询字符串更好的方法是使用
parseqs
函数(更安全的是,不需要
regex
fiddling,您就可以得到您想要的东西)():


也许应该为“?”添加转义字符,请尝试以下操作:

links = re.findall('href="/imgres\?imgurl=(.*?)jpg&imgrefurl="',sourceCode)
for i in links:
    print(i)

也许应该为“?”添加转义字符,请尝试以下操作:

links = re.findall('href="/imgres\?imgurl=(.*?)jpg&imgrefurl="',sourceCode)
for i in links:
    print(i)

您好,您的代码与上面的代码配合得很好,但是当我尝试用整个源代码处理它时,它会向我显示以下错误。print(q['imgurl'])键错误:“imgurl'@sodmzs您需要从soup中选择正确的元素。我更新了我的代码。感谢它现在可以正常工作,但当源代码中的多个链接位于同一标记内时,它只显示了一个链接,就像我问题中的源代码片段一样。@SODMZ您需要使用select()方法,而不是select_one()并使用for loop遍历此方法选择的所有链接。您好,您的代码与上面的代码配合得很好,但是当我尝试用整个源代码处理它时,它会向我显示以下错误。print(q['imgurl'])键错误:“imgurl'@sodmzs您需要从soup中选择正确的元素。我更新了我的代码。感谢它现在能正常工作,但当源代码中的多个链接位于同一标记内时,它只显示了一个链接,就像我问题中的源代码片段一样。@SODMZ您需要使用select()方法,而不是select_one()并使用for loop遍历此方法选择的所有链接。