【发布时间】:2019-06-05 16:27:41
【问题描述】:
我对 python 很陌生,我希望你能解决一个问题。 我想从这个链接刮桌子:http://creationdentreprise.sn/rechercher-une-societe?field_rc_societe_value=&field_ninea_societe_value=&denomination=&field_localite_nid=All&field_siege_societe_value=&field_forme_juriduqe_nid=All&field_secteur_nid=All&field_date_crea_societe_value=
正如您在网站上看到的,在最后一列中,每行都有一个名为“Voir 详细信息”的链接。 实际上,我想创建 3 个新列:“Region”、“Capital”和“Objet Social”,点击链接并添加到包含一般信息的表格中。
我的代码已经提取了不同页面中的表格
from bs4 import BeautifulSoup as bsoup
import requests as rq
import re
base_url = 'http://www.creationdentreprise.sn/rechercher-une-societe?field_rc_societe_value=&field_ninea_societe_value=&denomination=&field_localite_nid=All&field_siege_societe_value=&field_forme_juriduqe_nid=All&field_secteur_nid=All&field_date_crea_societe_value='
r = rq.get(base_url)
soup = bsoup(r.text)
page_count_links = soup.find_all("a",href=re.compile(r".http://www.creationdentreprise.sn/rechercher-une-societe?field_rc_societe_value=&field_ninea_societe_value=&denomination=&field_localite_nid=All&field_siege_societe_value=&field_forme_juriduqe_nid=All&field_secteur_nid=All&field_date_crea_societe_value=&page=.*"))
try:
num_pages = int(page_count_links[-1].get_text())
except IndexError:
num_pages = 1
url_list = ["{}&page={}".format(base_url, str(page)) for page in range(1, 3)]
with open("results.txt","w") as acct:
for url_ in url_list:
print("Processing {}...".format(url_))
r_new = rq.get(url_)
soup_new = bsoup(r_new.text)
for tr in soup_new.find_all('tr'):
stack = []
for td in tr.findAll('td'):
stack.append(td.text.replace('\n', '').replace('\t', '').strip())
acct.write(", ".join(stack) + '\n')
我的查询可以返回表格:
Dénomination - Date Création - Siège social - Forme Juridique - Secteur d'activité。
如何将我的脚本转换为 3 个新列,例如:
Dénomination - Date Création - Siège social - Forme Juridique - Secteur d'activité - 地区 - 首都 - Objet Social
谢谢大家的帮助
【问题讨论】:
标签: python database web-scraping beautifulsoup python-requests