Python beauthulsoup网络绘图:格式化输出

2024-10-02 10:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试爬网的站点是http://www.boxofficemojo.com/yearly/chart/?yr=2013&p=.htm。我现在关注的是http://www.boxofficemojo.com/movies/?id=catchingfire.htm。在

从这一页来看,我有两个问题。第一件事是“国外总额”(低于总终身总收入)。我用这个函数得到了金额:

def getForeign(item_url):
    response = requests.get(item_url)
    soup = BeautifulSoup(response.content)
    print soup.find(text="Foreign:").find_parent("td").find_next_sibling("td").get_text(strip = True)

问题是,我可以将这个值打印到控制台,但不能将这些值附加到列表或将它们写入csv文件。对于之前我需要在这个网站上获取的数据,我获得了每部电影的单独信息,并将它们全部添加到一个列表中,然后将其导出到csv文件中。在

我如何才能将这一“国外总金额”作为每部电影的单独金额?我需要改变什么?在

第二个问题是获取每部电影的演员名单。我有这个功能:

^{pr2}$

这将打印出一份演员名单:詹妮弗·劳伦斯·乔希·哈彻尔索尼亚姆·海姆斯沃特丽莎贝斯·班克斯坦利·图奇伍迪·哈雷尔森菲利普·西莫尔·霍夫曼杰弗里·赖特杰娜·马洛内曼达·普卢默·萨姆·克拉夫林唐纳德·萨瑟兰登尼·克拉维茨 -因此。在

我也有同样的问题,因为我在国外的总金额。我想分别获得每个演员,然后将它们全部附加到一个临时列表中,然后再将该列表附加到另一个完整的所有电影列表。我是用导演列表来做的,但是由于所有导演都是链接,但不是所有演员/女演员都有html链接,所以我不能这样做。现在的另一个问题是每个演员之间没有空间。在

为什么我当前的功能不起作用,我如何修复它们?在

更多代码:

^{3}$

listOfForeign=[]

def getForeign(item_url):
    s = urlopen(item_url).read()
    soup = BeautifulSoup(s)
    return soup.find(text="Foreign:").find_parent("td").find_next_sibling("td").get_text(strip = True)

def spider(max_pages):
    page = 1
    while page <= max_pages:
        url = 'http://www.boxofficemojo.com/yearly/chart/?page=' + str(page) + '&view=releasedate&view2=domestic&yr=2013&p=.htm'
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text)
        for link in soup.select('td > b > font > a[href^=/movies/?]'):
            href = 'http://www.boxofficemojo.com' + link.get('href')
            listOfForeign.append(getForeign(href))                
    page += 1


print listOfForeign

退货

回溯(最近一次呼叫): 文件“C:/Users/younjin/PycharmProjects/untitled/电影.py“,第75行,英寸 卡盘(1) 文件“C:/Users/younjin/PycharmProjects/untitled/电影.py“,第29行,蜘蛛 列表foreign.append(getForeign(href)) 文件“C:/Users/younjin/PycharmProjects/untitled/电影.py“,第73行,在getForeign中 返回汤。找(text=“Foreign:”)。查找“父项”(“td”)。查找“下一个”兄弟(“td”)。获取“文本”(strip=True) AttributeError:“NoneType”对象没有“find\u parent”属性


Tags: 文件texthttpurl列表get电影www

热门问题