我尝试爬网的站点是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”属性
目前没有回答
相关问题 更多 >
编程相关推荐