鍍金池/ 問答/HTML5  Python  網(wǎng)絡(luò)安全/ Python爬蟲如何實(shí)現(xiàn)自動(dòng)翻頁(yè)并將數(shù)據(jù)存入csv中?

Python爬蟲如何實(shí)現(xiàn)自動(dòng)翻頁(yè)并將數(shù)據(jù)存入csv中?

求大神指導(dǎo),本人剛接觸到python爬蟲,有一些問題,再此感激不盡?。。。?br>我想爬取一些英文新聞標(biāo)題,然后把他們存在一個(gè)csv文件里面
我的代碼如下

 import csv, requests, re
 from bs4 import BeautifulSoup

 urls = ['https://www.defense.gov/News/Archive/?Page={}'.format(str(i)) for i in range(1,10)]

def get_titles(urls,data = None):
    html = requests.get(urls).text
    soup = BeautifulSoup(html, 'html.parser')
    articles = []
    for article in soup.find_all(class_='info'):
        Label = 'Archive'
        News = article.find(class_='title').get_text()
        articles.append([Label,News])
        with open(r'1.csv','a', newline='') as f:
             writer = csv.writer(f)
             writer.writerow(['Label','News'])
             for row in articles:
                 writer.writerow(row)

for titles in urls:
get_titles(titles)

想這樣來(lái)爬取1-9頁(yè)的新聞標(biāo)題,但是最后運(yùn)行結(jié)果是這樣

clipboard.png
每增加一個(gè)新聞標(biāo)題都會(huì)把之前的標(biāo)題重復(fù)寫入csv中。

求大神指導(dǎo)??!

回答
編輯回答
誮惜顏

原因是之前的articles列表沒有清空,所以每一次都會(huì)輸出之前的數(shù)據(jù),只需要再后面置空一下列表變量就行了
articles = []就行了,希望可以幫到大家,然后把writer.writerow(['Label','News'])寫出循環(huán)外就可以不用每次都有Label和News了

2018年9月19日 11:27