gpt4 book ai didi

python - 用 python pandas 和 beautifulSoup 抓取分页网页表

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:05 27 4
gpt4 key购买 nike

我是 python pandas 的初学者,我正在尝试使用漂亮的 soup 包删除分页表,数据被删除,但每个单元格的内容都在一行中,我无法获得连贯的 csv 文件

这是我的代码:

import urllib
import urllib.request
from bs4 import BeautifulSoup
import os

file=open(os.path.expanduser("sites_commerciaux.csv"), "wb")

def make_soup(url):
thepage=urllib.request.urlopen(url)
soupdata=BeautifulSoup(thepage,"html.parser")
return soupdata


headers="Nom_commercial_du_Site,Ville,Etat,Surface_GLA,Nombre_de_boutique,Contact"
file.write(bytes(headers,encoding='ascii',errors='ignore'))
save=""
for num in range(0,22):
soup=make_soup("http://www.ceetrus.com/fr/implantations-sites-commerciaux?page="+str(num))
for rec in soup.findAll('tr'):
saverec=""
for data in rec.findAll('td'):
saverec=saverec+","+data.text
if len(saverec)!=0:
save=save+"\n"+saverec[1:]

file.write(bytes(save,encoding='ascii',errors='ignore'))

谁能帮我解决一下

最佳答案

我做了一些清洁工作。首先,为什么是 bytes 类型?你在写文字。那为什么是ascii?请使用 unicode。如果稍后在您的代码中您确实需要将 ascii 编码为 ascii。 findAll 的使用已弃用,请使用 find_all。表面值中的逗号也可能存在问题。最后,尽可能使用上下文管理器(此处:使用文件)

现在对于你的问题,你有两个问题:

  1. 您的测试 if len(saverec)!=0: 处于 for 循环中,生成很多无用的数据。
  2. 您没有去除数据中不需要的空格

.

import urllib
import urllib.request
from bs4 import BeautifulSoup
import os


def make_soup(url):
thepage=urllib.request.urlopen(url)
soupdata=BeautifulSoup(thepage,"html.parser")
return soupdata


save=""
for num in range(0, 22):
soup=make_soup("http://www.ceetrus.com/fr/implantations-sites-commerciaux?page="+str(num))
for rec in soup.find_all('tr'):
saverec=""
for data in rec.find_all('td'):
data = data.text.strip()
if "," in data:
data = data.replace(",", "")
saverec=saverec+","+data
if len(saverec)!=0:
save=save+"\n"+saverec[1:]
print('#%d done' % num)

headers="Nom_commercial_du_Site,Ville,Etat,Surface_GLA,Nombre_de_boutique,Contact"
with open(os.path.expanduser("sites_commerciaux.csv"), "w") as csv_file:
csv_file.write(headers)
csv_file.write(save)

第一页的输出:

Nom_commercial_du_Site,Ville,Etat,Surface_GLA,Nombre_de_boutique,Contact
ALCORCÓN,ALCORCÓN - MADRID,Ouvert,4298 m²,40,José Carlos GARCIA
Alegro Alfragide,CARNAXIDE,Ouvert,11461 m²,122,
Alegro Castelo Branco,CASTELO BRANCO,Ouvert,6830 m²,55,
Alegro Setúbal,Setúbal,Ouvert,27000 m²,114,
Ancona,Ancona,Ouvert,7644 m²,41,Ettore PAPPONETTI
Angoulême La Couronne,LA COURONNE,Ouvert,6141 m²,45,Juliette GALLOUEDEC
Annecy Grand Epagny,EPAGNY,Ouvert,20808 m²,61,Delphine BENISTY
Anping,Tainan,Ouvert,969 m²,21,Roman LEE
АКВАРЕЛЬ,Volgograd,Ouvert,94025 m²,182,Viktoria ZAITSEVA
Arras,ARRAS,Ouvert,4000 m²,26,Anais NIZON

关于python - 用 python pandas 和 beautifulSoup 抓取分页网页表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com