Python抓取只检索最后一页 - 新手

时间:2017-10-13 12:19:06

标签: python

我正在努力刮擦&打印存储在变量中的所有页面但由于某种原因,只写入最后一页的结果。 在我的代码下面

from urllib.request import urlopen as oPen
from bs4 import BeautifulSoup as soup
import requests 



for i in range(1,3): 
        myurl='http://www.imdb.com/search/title?genres=sci_fi&title_type=feature&sort=moviemeter,asc&page=' + str(i) + '&ref_=adv_nxt'
        r = requests.get(myurl)
        page_soup = soup(r.content,"html.parser")
        uClient = oPen(myurl)
        page_html = uClient.read()
        uClient.close()



        containers=page_soup.findAll("div",{"class":"lister-item mode-advanced"})


        filename = "test.csv"
        f = open(filename,"w")
        headers="numbers\n"
        f.write(headers)

        for container in containers:


                       nr=container.findAll("span",{"class":"lister-item-index unbold text-primary"})
                       number=nr[0].text






                       x=(number + "," '\n')   
                       f.write(x)                                                            
        f.close()

提前致谢!

1 个答案:

答案 0 :(得分:1)

您应该使用a参数打开文件,以附加到该文件。 每次使用w打开它时,它都会覆盖该文件。因此,只有最后写的东西出现在最后。

f = open(filename,"a")

你应该在循环之前打开文件,然后关闭它。因此,您不会花费所有时间来打开/关闭它。