Я попытался привести ваш код в порядок и использовать requests.session (). Ваш диапазон неверен, он попадает только на страницу 309. Я удалил пробелы, чтобы упростить синтаксический анализ.
#!/usr/bin/python3
import requests
from bs4 import BeautifulSoup
import pandas as pd
session = requests.session()
company = []
types = []
base_url = "https://www.weps.org/companies?combine=&field_sector_target_id=All&field_company_type_value=All&field_number_of_employees_value=All&field_region_target_id=All&field_country_target_id=All&page="
# The last page with data on is 310 so use range(0, 311).
for i in range(0, 311):
page = session.get(f'{base_url}{i}')
soup = BeautifulSoup(page.content, 'html.parser')
company_only = soup.select(".field-content .skiptranslate")
company = company + [cm.get_text().strip() for cm in company_only]
types_only = soup.select(".views-field-nothing .field-content")
types = types + [tp.get_text().strip() for tp in types_only]
data = pd.DataFrame({
'Name': company,
'Type | Location | Date': types# 'Type | Location | Data': types
})
data.to_csv(r'finalfile.csv', index=False)
Затем я подсчитал строки в файле:
cat finalfile.csv | wc -l
3104
веб-сайт сообщал о 3103 компаниях, плюс заголовки в файле csv, это правильно.
Затем я подсчитал уникальные строки в файле:
cat finalfile.csv | sort -u | wc -l
3091
Некоторые компании повторяются, поэтому я распечатал разница:
cat finalfile.csv | sort | uniq -d
Banco Amazonas S.A.,Banks | Americas and the Caribbean | Ecuador | 09 May 2019
Careem,Software & Computer Services | Arab States | Qatar | 13 May 2018
Careem,Software & Computer Services | Asia and the Pacific | Pakistan | 13 May 2018
Hong Kong Exchanges and Clearing Limited,"Financial Services | Asia and the Pacific | China, Hong Kong SAR |"
H?TAY PLAZA,General Retailers | Europe and Central Asia | Turkey | 06 March 2019
"Kowa Co., Ltd.",Health Care Equipment & Services | Asia and the Pacific | Japan | 17 September 2010
Madrigal Sports,General Industrials | Asia and the Pacific | Pakistan | 05 December 2017
Novartis Corporativo S.A. de C.V.,Health Care Providers | Global | Mexico | 07 February 2020
Poppins Corporation,Support Services | Asia and the Pacific | Japan | 17 September 2010
Procter & Gamble Japan K.K.,Food & Drug Retailers | Asia and the Pacific | Japan | 17 September 2010
"Shiseido Co., Ltd.",Personal Goods | Asia and the Pacific | Japan | 17 September 2010
Tesco PLC,Food & Drug Retailers | Europe and Central Asia | United Kingdom of Great Britain and Northern Ireland | 06 March 2019
Xiaohongshu,Internet | Asia and the Pacific | China | 05 March 2020
Я повторил запуск скрипта и команд bash и получил тот же результат. Итак, я прихожу к выводу, что 3103 компаний, перечисленных на веб-сайте, имеют дубликаты на веб-сайте, и в результатах нет ничего пропавшего.
Просто чтобы проверить, я искал ключевое слово «Careem» и получил повторяющиеся результаты.