机械化:仅跟踪URL中某些元素的链接

时间:2012-12-03 01:55:31

标签: python beautifulsoup urllib2 mechanize

学习机械化: 我想要浏览新闻网站,只关注链接中包含?sid的链接。 我似乎对Mechanize文档没有太多了解。

import mechanize
br = mechanize.Browser()
response = br.open("http://www.ksl.com")
target_url = 'http://www.ksl.com/?sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia'

for link in br.links():
    print link.text, link.lurl

这就是我现在所拥有的。我希望Mechanize转到KSL的主页面,打开每个链接,在URL中使用?sid,然后在该URL中搜索目标URL。然后返回,继续搜索页面上的不同链接。在首页的末尾,底部有一个“页码”,可以追溯到很远的位置,所以我需要转到“下一页”来扫描更多链接....所以我想知道哪个故事中包含目标URL。

1 个答案:

答案 0 :(得分:2)

查看urlparse

>>> from urlparse import urlparse
>>> target_url = 'http://www.ksl.com/?sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia'
>>> parsed_url = urlparse(target_url)
>>> parsed_url
ParseResult(scheme='http', netloc='www.ksl.com', path='/', params='', query='sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia', fragment='')
>>> if 'sid=' in parsed_url.query:
...     do_something()