我的目标是从网站解析数据并将这些数据存储在文本文件中,格式化为在Excel中打开。
这是代码:
from bs4 import BeautifulSoup
import requests
import pprint
import re
import pyperclip
import json
import pandas as pd
import csv
pag = range (2, 126)
out_file = open('bestumbrellasoffi.txt', 'w', encoding='utf-8')
with open('bestumbrellasoffi.txt', 'w', encoding='utf-8') as file:
for x in pag:
# Iterate pages
url = 'https://www.paginegialle.it/ricerca/lidi%20balneari/italia/p-' + str(x) + '?mr=50'
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
# Parse data
for i, j, k, p, z in zip(soup.find_all('span', attrs=
{'itemprop': 'name'}), soup.find_all('span', attrs=
{'itemprop': 'longitude'}), soup.find_all('span', attrs=
{'itemprop': 'latitude'}), soup.find_all('span', attrs = {'class': 'street-
address'}), soup.find_all('div', attrs = {'class': 'tel elementPhone'})):
info = i.text, j.text, k.text, p.text, z.text
# Check if data is good
print(url)
print (info)
# Create dataframe
raw_data = { 'nome': [i], 'longitudine': [j], 'latitudine':
[k], 'indirizzo': [p], 'telefono': [z]}
print(raw_data)
df = pd.DataFrame(raw_data, columns =
['nome', 'longitudine', 'latitudine', 'indirizzo', 'telefono'])
df.to_csv('bestumbrellasoffi.txt')
out_file.close()
有所有这些模块,因为我做了很多尝试。
所以输出
print(info) [is][1]
的输出
打印(原始数据)qazxsw poi
这是经过审查的代码,功能完备。
is
您在for循环的每次迭代中初始化一个新的数据框。
您应该在循环外部初始化它,然后在循环中使用append()来添加每一行数据。