数据在大熊猫中被覆盖

发布于 2025-02-08 23:13:08 字数 1448 浏览 1 评论 0原文

当我将CSV文件数据覆盖在CSV文件中时,如果有任何解决方案为我提供页面的链接为 https://www.aeafa.es/asociados.php?provinput=&_pagi_pg = 1 已经在这里搜索了一个答案并在Google上花了很长时间,但是什么都没有...我已经尝试使用“ W”而不是“ R”或“ A”打开文件

import requests
from bs4 import BeautifulSoup
import pandas as pd

headers ={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
for page in range(1,3): 
    r =requests.get('https://www.aeafa.es/asociados.php?provinput=&_pagi_pg={page}'.format(page=page),
    headers=headers) 
    soup=BeautifulSoup(r.content, 'lxml')
    tag=soup.find_all('div',class_='col-md-8 col-sm-8')
    temp=[]
    for pro in tag:
        data=[tup.text for tup in pro.find_all('p')]
      
        Dirección=data[2]
        Dirección=Dirección[12:]
        
    
        Población=data[3]
        Población=Población[14:]

    

        Provincia=data[4]
        Provincia=Provincia[14:] 

    
        Teléfono=data[5]
        Teléfono="+" + Teléfono[11:].replace('.', "")
        


        Email=data[6]
        Email=Email[10:]
        
        
        

        temp.append([Dirección,Provincia,Población,Teléfono, Email])
    df=pd.DataFrame(temp,columns=["Dirección","Provincia","Población","Teléfono","Email"])
    df.to_csv('samp.csv')

When I make the csv file data are overwrite in csv file If there is any solution provide me the link of the page is https://www.aeafa.es/asociados.php?provinput=&_pagi_pg=1 have already searched for an answer here and spent a long time on google, but nothing... I've already tried opening the file with 'w' instead of 'r' or 'a' but I still can't get my code to

import requests
from bs4 import BeautifulSoup
import pandas as pd

headers ={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
for page in range(1,3): 
    r =requests.get('https://www.aeafa.es/asociados.php?provinput=&_pagi_pg={page}'.format(page=page),
    headers=headers) 
    soup=BeautifulSoup(r.content, 'lxml')
    tag=soup.find_all('div',class_='col-md-8 col-sm-8')
    temp=[]
    for pro in tag:
        data=[tup.text for tup in pro.find_all('p')]
      
        Dirección=data[2]
        Dirección=Dirección[12:]
        
    
        Población=data[3]
        Población=Población[14:]

    

        Provincia=data[4]
        Provincia=Provincia[14:] 

    
        Teléfono=data[5]
        Teléfono="+" + Teléfono[11:].replace('.', "")
        


        Email=data[6]
        Email=Email[10:]
        
        
        

        temp.append([Dirección,Provincia,Población,Teléfono, Email])
    df=pd.DataFrame(temp,columns=["Dirección","Provincia","Población","Teléfono","Email"])
    df.to_csv('samp.csv')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

血之狂魔 2025-02-15 23:13:08

尝试将列表TEMP放在前面的循环外。然后,在所有循环完成后创建数据框:

import requests
import pandas as pd
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
}

temp = []

for page in range(1, 3):
    r = requests.get(
        "https://www.aeafa.es/asociados.php?provinput=&_pagi_pg={page}".format(
            page=page
        ),
        headers=headers,
    )
    soup = BeautifulSoup(r.content, "lxml")
    tag = soup.find_all("div", class_="col-md-8 col-sm-8")
    for pro in tag:
        data = [tup.text for tup in pro.find_all("p")]

        Dirección = data[2]
        Dirección = Dirección[12:]

        Población = data[3]
        Población = Población[14:]

        Provincia = data[4]
        Provincia = Provincia[14:]

        Teléfono = data[5]
        Teléfono = "+" + Teléfono[11:].replace(".", "")

        Email = data[6]
        Email = Email[10:]

        temp.append([Dirección, Provincia, Población, Teléfono, Email])

df = pd.DataFrame(
    temp, columns=["Dirección", "Provincia", "Población", "Teléfono", "Email"]
)
df.to_csv("samp.csv")

print(len(df))

prints:

98

from libreoffice的屏幕截图:

//i.sstatic.net/d7alb.png“ alt =”在此处输入图像说明”>

Try to put the list temp outside of the for-loop. Then, create the dataframe after all the loops finish:

import requests
import pandas as pd
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
}

temp = []

for page in range(1, 3):
    r = requests.get(
        "https://www.aeafa.es/asociados.php?provinput=&_pagi_pg={page}".format(
            page=page
        ),
        headers=headers,
    )
    soup = BeautifulSoup(r.content, "lxml")
    tag = soup.find_all("div", class_="col-md-8 col-sm-8")
    for pro in tag:
        data = [tup.text for tup in pro.find_all("p")]

        Dirección = data[2]
        Dirección = Dirección[12:]

        Población = data[3]
        Población = Población[14:]

        Provincia = data[4]
        Provincia = Provincia[14:]

        Teléfono = data[5]
        Teléfono = "+" + Teléfono[11:].replace(".", "")

        Email = data[6]
        Email = Email[10:]

        temp.append([Dirección, Provincia, Población, Teléfono, Email])

df = pd.DataFrame(
    temp, columns=["Dirección", "Provincia", "Población", "Teléfono", "Email"]
)
df.to_csv("samp.csv")

print(len(df))

Prints:

98

Screenshot from LibreOffice:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文