Дело в том, что libstdc ++ фактически поддерживал std::to_string
в * -w64-mingw32 target с 4.8.0 . Однако это не включает поддержку MinGW.org, Cygwin и вариантов (например, * -pc-msys от MSYS2). См. Также https://cygwin.com/ml/cygwin/2015-01/msg00245.html .
Я реализовал обходной путь до ошибка решена для MinGW-w64. Будучи отличным от кода в других ответах, это мимика libstdc ++ (насколько это возможно). Он не требует строкового потока, но зависит от расширений libstdc ++. Даже сейчас я использую целевые объекты mingw-w64 в Windows, он по-прежнему хорошо работает для нескольких других целей (пока функции long double
не используются).
Я хочу узнать, была ли приобретена какая-то компания и кем
blockquote>Вы можете очистить веб-сайт crunchbase , чтобы получить эту информацию. Недостатком является то, что вы будет ограничивать ваш поиск на их сайте. Чтобы расширить это, вы могли бы также включить некоторые другие сайты.
import requests from bs4 import BeautifulSoup import re while True: print() organization_name=input('Enter organization_name: ').strip().lower() crunchbase_url='https://www.crunchbase.com/organization/'+organization_name headers={ 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' } r=requests.get(crunchbase_url,headers=headers) if r.status_code == 404: print('This organization is not available\n') else: soup=BeautifulSoup(r.text,'html.parser') overview_h2=soup.find('h2',text=re.compile('Overview')) try: possible_acquired_by_span=overview_h2.find_next('span',class_='bigValueItemLabelOrData') if possible_acquired_by_span.text.strip() == 'Acquired by': acquired_by=possible_acquired_by_span.find_next('span',class_='bigValueItemLabelOrData').text.strip() else: acquired_by=False except Exception as e: acquired_by=False # uncomment below line if you want to see the error # print(e) if acquired_by: print('Acquired By: '+acquired_by+'\n') else: print('No acquisition information available\n') again=input('Do You Want To Continue? ').strip().lower() if again not in ['y','yes']: break
Пример выходных данных:
Enter organization_name: Marketo Acquired By: Adobe Systems Do You Want To Continue? y Enter organization_name: Facebook No acquisition information available Do You Want To Continue? y Enter organization_name: FakeCompany This organization is not available Do You Want To Continue? n
Примечания
Прочитайте Условия использования crunchbase и найдите их согласие, прежде чем использовать его в любых коммерческих проектах.
Также ознакомьтесь с crunchbase api - я думаю, что это будет законным способом продвинуться вперед в том, что вы просите.
Как уже упоминалось в других ответах , crunchbase - хорошее место для получения информации такого типа, но вам потребуется браузер без головы, чтобы удалить базу данных crunchbase, такую как Selenium
< hr>Если вы используете Ubuntu, установить Selenium довольно просто. Selenium требует драйвера для взаимодействия с выбранным браузером. Например, для Firefox требуется geckodriver
install последняя версия geckodriver
[1118 ]Добавьте драйвер в вашу переменную PATH, чтобы другие инструменты могли найти его, или в каталоге, где установлено все ваше программное обеспечение, в противном случае он выдаст ошибку (исполняемый файл 'geckodriver' должен находиться в PATH)
код
< hr>from bs4 import BeautifulSoup as BS
from selenium import webdriver
baseurl = "https://www.crunchbase.com/organization/{0}"
query = input('type company name : ').strip().lower()
url = baseurl.format(query)
driver = webdriver.Firefox()
driver.get(url)
html = driver.page_source
soup = BS(html, 'lxml')
acquiredBy = soup.find('div', class_= 'flex-no-grow cb-overflow-ellipsis identifier-label').text
print(acquiredBy)
Вы можете также получить другую информацию, используя ту же логику, просто проверив класс / идентификатор и извлеките информацию.
Вы можете найти эту информацию с сайта, такого как Crunchbase.
Чтобы получить его, выполните следующие действия:
создайте URL, содержащий информацию для вашей целевой компании. Предположим, вы нашли URL, содержащий нужную вам информацию, например:
url = 'https://www.example.com/infoaboutmycompany.html'
использовать селен для получения html, так как сайт не позволяет очистить страница напрямую. Примерно так:
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Firefox()
driver.get(url)
html = driver.page_source
используют BeautifulSoup для получения текста из div, содержащего информацию. У него есть определенный класс, который вы можете легко найти по HTML:
bsobj = BeautifulSoup(html, 'lxml')
res = bsobj.find('div', {'class':'alpha beta gamma'})
res.text.strip()
Менее 10 строк кода, чтобы получить его.
Конечно, это работает, изменяя ваш список, от списка URL-адресов до списка компаний, которые мы надеемся рассмотреть на этом сайте. Для рынка это работает.