我用mechanize从yahoo搜索中获取最热门的搜索结果并从中删除数据,但是yahoo只提供dirtyurl,这在进一步处理时会出错,有没有解决方法来获取原始链接?在
示例:对于结果stackoverflow.com网站,我得到以下标签
<a
dirtyhref="http://r.search.yahoo.com/_ylt=A0SO8zEuKGZUteYAEHRXNyoA;_ylu=X3oDMTEzODh2cDk0BHNlYwNzcgRwb3MDMQRjb2xvA2dxMQR2dGlkA1ZJUDI0NF8x/RV=2/RE=1416009903/RO=10/RU=http%3a%2f%2fstackoverflow.com%2f/RK=0/RS=a.mWRIy6IMjJQysgixByd8053hE-"
id="link-1" class="yschttl spt" href="http://r.search.yahoo.com/_ylt=A0SO8zEuKGZUteYAEHRXNyoA;_ylu=X3oDMTEzODh2cDk0BHNlYwNzcgRwb3MDMQRjb2xvA2dxMQR2dGlkA1ZJUDI0NF8x/RV=2/RE=1416009903/RO=10/RU=http%3a%2f%2fstackoverflow.com%2f/RK=0/RS=a.mWRIy6IMjJQysgixByd8053hE-" target="_blank" data-bk="5054.1">
<b>Stack Overflow</b> - Official Site
</a>
假设您可以轻松地隔离
dirtyhref
的内容(可以使用BeautifulSoup
来解析链接http://www.crummy.com/software/BeautifulSoup/bs4/doc/),那么您可以使用urlparse
包来只获得路径(https://docs.python.org/2/library/urlparse.html#urlparse.urlparse)。现在您将把它放在一个字符串中,比如:现在,在我看来,字段是用
^{pr2}$/
分隔的,因此您可以:假设您感兴趣的字段总是第六个:
最后,您可以使用
urllib2
包(https://docs.python.org/2/library/urllib.html#urllib.unquote)中的unquote
:也不能假设URL总是在第六个字段中,方法是在
fields
上循环并检查它是否以RU=
开头。在相关问题 更多 >
编程相关推荐