如何在webscraping中仅获取数据(没有标记名)

2024-09-30 07:34:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我为一个垃圾数据网站写了代码。我们的想法是刮取链接,然后进入每个链接,为x元素获取相同的数据

所以我写了代码,但是:

  1. 无法从td类中仅获取文本(没有太多html知识)。我得到的结果是:td类的名称和中间名为“93203587600000”,只需要中间名。.text方法不起作用,因为它是soup.find\u all没有它。怎么做
  2. 我想将其导出到excel spreadshit,以便对其进行调查,但我得到的表包含相同的元素。所以,我们的想法是用一个名称(例如:name1、name2、name3)来命名每个名称,然后按相同的顺序将不同的数据放入其中。如何做到这一点,然后导出到Excel

我的代码:

import requests
from bs4 import BeautifulSoup
import pandas as pd

baseURL = ""

firmy = []

for x in range(2, 3):
    r = requests.get(f"http://={x}") //comment: frame for looping through sites
    soup = BeautifulSoup(r.content, features="html.parser")
    nazwy = soup.find_all('div', class_='col-9')
    for item in nazwy:
        for link in item.find_all('a', href=True):
            firmy.append(link['href'])

# testlink = ""
daneFirm = []
for link in firmy:
    r = requests.get(link)
    soup = BeautifulSoup(r.content, features="html.parser")
    basicData = soup.find('div', class_='basicData').text.strip()
    daneFirm.append(basicData.text)

print(daneFirm)

我得到的结果如下,但我希望它的描述。有什么提示吗

[[<td class="col-xs-8">xxx</td>, <td class="col-xs-8"></td>, <td class="col-xs-8">xxx</td>, <td class="col-xs-8"></td>, <td class="col-xs-8">xxxx</td>, <td class="col-xs-8" itemscope="" itemtype="http://data-vocabulary.org/Address">
<span itemprop="street-address">KARMELKOWA 29/41 </span><br/>
                                        53-437 <span itemprop="locality">WROCŁAW</span><br/>

我需要的数据在下面的html代码中:

<divclass ="basicData">
  <table id="basicDataTable">
    <tbody>
    <tr>
     <th>Status</th
     <td>Aktywna</>
    </tr>
    <tr>
<th class="col-xs-4">NIP</th>
<td class="col-xs-8">5220003782</td>

大约是相同元素的10倍。我需要的基本上是“col-xs-8”或是表体


Tags: 数据代码inforhtmllinkcolfind
1条回答
网友
1楼 · 发布于 2024-09-30 07:34:32

您可以使用此示例从https://krs-pobierz.pl/wojewodztwo/lubelskie?q=上找到的所有公司获取数据:

import requests
import pandas as pd
from bs4 import BeautifulSoup

url = 'https://krs-pobierz.pl/wojewodztwo/lubelskie?q='
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

all_data = []
for a in soup.select('h4 > a'):
    print(a['href'])
    s = BeautifulSoup(requests.get(a['href']).content, 'html.parser')    
    if not s.h1:
        continue
    all_data.append({'Title': s.h1.text, 'URL': a['href']})
    for th, td in zip(s.select('#basicDataTable th'), s.select('#basicDataTable td')):
        all_data[-1][th.get_text(strip=True)] = td.get_text(strip=True)

df = pd.DataFrame(all_data)
print(df)
df.to_csv('data.csv')

印刷品:

                                                Title  ...                             Podstawowa działalność
0                                SPÓŁDZIELNIA FRUCTON  ...                                                   
1      SPÓŁDZIELNIA RZEMIEŚLNICZA W BIAŁEJ PODLASKIEJ  ...       Sprzedaż hurtowa niewyspecjalizowana (4690Z)
2   STOWARZYSZENIE CHARYTATYWNE DOBRE SERCE IM. MA...  ...  Działalność pozostałych organizacji członkowsk...
3                              FUNDACJA SCENY INVITRO  ...  Działalność pozostałych organizacji członkowsk...
4              STOWARZYSZENIE PRZYJACIÓŁ RADIA LUBLIN  ...  Pośrednictwo w sprzedaży czasu i miejsca na ce...
5   TOWARZYSTWO OCHRONY DZIEDZICTWA KULTUROWEGO FA...  ...  Działalność pozostałych organizacji członkowsk...
6      EKO LM SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...                                                   
7   PRZEDSIĘBIORSTWO-PRODUKCYJNO-HANDLOWE POLEXIM ...  ...  Pozostała działalność profesjonalna, naukowa i...
8   PRISMAKE MACIEJ ŁOBODZIŃSKI, MICHAŁ ŚMIAŁKO SP...  ...     Działalność związana z oprogramowaniem (6201Z)
9   INTER GLOBO SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALN...  ...  Sprzedaż hurtowa sprzętu elektronicznego i tel...
10      LIMAK SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...  Sprzedaż hurtowa sprzętu elektronicznego i tel...
11   SYNTAGMA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...                  Transport drogowy towarów (4941Z)
12    ROCHBUD SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...      Działalność agencji pracy tymczasowej (7820Z)
13  DAGOBE SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ...  ...  Roboty budowlane związane ze wznoszeniem budyn...
14  HOTEL IMPRESSA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZI...  ...                                                   
15  FUNDITUS SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚC...  ...  Produkcja pozostałych artykułów spożywczych, g...
16      ETRAS SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...  Roboty budowlane związane ze wznoszeniem budyn...
17    STOWARZYSZENIE NA RZECZ ROZWOJU WSI STARA DĄBIA  ...  Wynajem i zarządzanie nieruchomościami własnym...
18  MAGIC FIGURE SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIAL...  ...  Sprzedaż detaliczna prowadzona przez domy sprz...
19  ATLASTOUR SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚ...  ...                                                   
20                           FUNDACJA AKADEMIA WIEDZY  ...  Pozostałe pozaszkolne formy edukacji, gdzie in...
21  MIĘDZYNARODOWE NAUKOWE TOWARZYSTWO WSPIERANIA ...  ...  Wydawanie czasopism i pozostałych periodyków (...
22  DEBERG INWESTYCJE SPÓŁKA Z OGRANICZONĄ ODPOWIE...  ...                                                   
23                    FUNDACJA LABORATORIUM TURYSTYKI  ...        Działalność organizatorów turystyki (7912Z)
24    ROCHMAN SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...                                                   
25  MEDCLINIC CONNECT SPÓŁKA Z OGRANICZONĄ ODPOWIE...  ...                                                   
26  ECO HVAC SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚC...  ...  Wykonywanie instalacji wodno-kanalizacyjnych, ...
27  USŁUGOWE PRZEDSIĘBIORSTWO BUDOWNICTWA ENERGOOS...  ...                                 Tynkowanie (4331Z)
28  WĘDZARNIA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ  ...   Sprzedaż hurtowa mięsa i wyrobów z mięsa (4632Z)

[29 rows x 16 columns]

并保存data.csv

enter image description here

相关问题 更多 >

    热门问题