【问题标题】:How to filter the information in a page?如何过滤页面中的信息?
【发布时间】:2013-09-22 18:46:21
【问题描述】:

我有这个代码:

import urllib
from bs4 import BeautifulSoup
import time

url = "http://www.downloadcrew.com/article/31121-magix_movie_edit_pro_2014_premium"
pageUrl = urllib.urlopen(url)
time.sleep(2)
soup = BeautifulSoup(pageUrl)

for a in  soup.select("div.downloadLink a[href]"):
    print "downloadlink: "+a["href"]

for b in soup.select("h1#articleTitle"):
    print b

for c in soup.select("table.detailsTable"):
    print c

我想要的是应用程序名称、更新日期、开发者和下载链接。 当我尝试运行它时,输出将是每个标签内的所有内容。

【问题讨论】:

    标签: javascript python-2.7 beautifulsoup


    【解决方案1】:

    这里是得到你想要的代码:

    import urllib
    from bs4 import BeautifulSoup
    import time
    
    url = "http://www.downloadcrew.com/article/31121-magix_movie_edit_pro_2014_premium"
    pageUrl = urllib.urlopen(url)
    time.sleep(2)
    soup = BeautifulSoup(pageUrl)
    
    for a in  soup.select("div.downloadLink a[href]"):
        print "downloadlink: " + "?" + a["href"].split("?")[1].split(",")[0]
    
    for b in soup.select("h1#articleTitle"):
        print b.contents[0].strip()
    
    for c in soup.findAll("th"):
        if c.text == "Date Updated:":
            print c.parent.td.text
        elif c.text == "Developer:":
            print c.parent.td.text
    

    但您无法使用该 URL 下载文件。您将需要检查 JavaScript 源文件以查看 javascript:checkDownload() 为获取实际文件位置所做的工作。

    【讨论】:

    • 在哪里可以查看 javascript 源文件?很抱歉问这个问题,因为在此之前我从未遇到过这种事情。
    • 如果您使用的是 chrome,请按 F12。转到资源选项卡并按 ctrl+f。搜索 checkDownload 函数。检查具有此功能的文件。如果你使用的是火狐。安装萤火虫。按 F12。转到脚本选项卡。按 ctrl+f。搜索 checkDownload 函数。检查具有此功能的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多