Python将蜘蛛数据放在excel文件中

时间:2015-08-16 21:02:44

标签: python web-crawler xlsxwriter

我每天丢失1小时来对来自网站的信息进行分类,因此我尝试构建一个将从网站获取数据的python蜘蛛,并将其自动归类为excel文件。

我已经构建了部分来获取数据,但我不知道如何使用我正在使用的代码将它们附加到excel文件中。

这是代码:

import requests
from bs4 import BeautifulSoup
import xlsxwriter

def spider_list(max_pages):
    page = 2
    while page < max_pages:
        url = 'http://yellow.local.ch/fr/q/Morges/Bar.html?page=' + str(page)
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, 'html.parser')
        for link in soup.findAll('a', {'class':'details-entry-title-link'}):
            href = link.get('href')
            spider_data(href)
        page += 1

def spider_data(item_url):
    source_code = requests.get(item_url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, 'html.parser')
    for items in soup.findAll('h1'):
        print("\n" + items.string)
    for num in soup.findAll('a', {'class':'number'}):
        print(num.string)
    for mail in soup.findAll('a', {'class':'redirect'}):
        print(mail.string)


spider_list(3)

每组信息都应该展示,这里有一个例子:

excel table

我该怎么办? -----------编辑-----------

好的,现在我创建了代码的最后一部分,但它不起作用?

def spider_data(item_url):
    source_code = requests.get(item_url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, 'html.parser')
datas = []
for items in soup.findAll('h1'):
    datas.append(items.string)
for num in soup.findAll('a', {'class':'number'}):
    datas.append(num.string)
for mail in soup.findAll('a', {'class':'redirect'}):
    datas.append(mail.string)
csv_create(datas)

def csv_create(data):
    myfile = open('mydatas.csv', 'wb')
    wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
    wr.writerow(data)

2 个答案:

答案 0 :(得分:1)

Excel可以读取.csv文件。如果您的文本行如下所示:“Title1,number1,website1 \ n”您将获得一个类似的excel文件。您既可以使用python的内置csv methods,也可以构建一个pandas DataFrame并使用to_csv(这样可以省去编写逗号和换行符的麻烦)。希望这有帮助

答案 1 :(得分:0)

使用csv当然是一种简单的方法,但可能很麻烦。即当使用引号或获取数据时,你没有参加。默认情况下像0:7一样白天。

我推荐你这个我认为更健壮的甜库,因此它可以设置数据类型,你可以按名称访问单元格,而不用逗号编号。

Python library for MS-excel creation