我每天花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)
每组信息应水平显示,这里有一个示例:
我该怎么做?
-----------编辑-----------
好了,现在我创建了代码的最后一部分,但它不起作用,为什么?
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)