从列表python 2.7中提取特定元素

时间:2016-11-05 03:17:05

标签: python python-2.7 list extract

我正在研究这个从特定页面中提取网址的机器人。我已经提取了所有链接并将它们放在一个列表中,现在我似乎无法从列表中获取现实主题网址(导致以http或https开头的其他网站)并将它们附加到另一个列表或删除那些不要以http开头。提前致谢

import urllib2
import requests
from bs4 import BeautifulSoup

def main():
    #get all the links from bing about cancer
    site = "http://www.bing.com/search?q=cancer&qs=n&form=QBLH&pq=cancer&sc=8-4&sp=-1&sk=&cvid=E56491F36028416EB41694212B7C33F2"
    urls =[]
    true_links = []
    r = requests.get(site)
    html_content = r.content
    soup = BeautifulSoup(html_content, 'html.parser')
    links = soup.find_all("a")
    for link in links:
        link = link.get("href")
        urls.append(str(link))
        #urls.append(link.get("href"))

    #print map(str, urls)
    #REMOVE GARBAGE LINKS

    print len(urls)
    print urls

main()

1 个答案:

答案 0 :(得分:0)

您可以使用free()

urlparse.urljoin

这将创建相对的绝对URL。

您还应该使用link = urlparse.urljoin(site, link.get("href")) 而不是html_content = r.texthtml_content = r.content负责使用正确的编码。