Соскоб HTML Стол в Python - PullRequest
       39

Соскоб HTML Стол в Python

0 голосов
/ 25 февраля 2020

Я пытаюсь очистить страницу отчета SE C, чтобы получить некоторую базовую c информацию о количестве тикеров.

Вот пример URL для Apple - https://sec.report/CIK/0000320193

На странице находится таблица «Сведения о компании», которая включает основную c информацию. Я, по сути, пытаюсь просто очистить номер IRS, штат Incorp и адрес.

Я крут, просто очистив эту таблицу и сохранив ее в PD Df. Я очень новичок в веб-поиске, поэтому ищу несколько советов, чтобы сделать эту работу! Ниже приведен мой код, но я не знаю, куда go, когда извлеку тело панели. Спасибо, ребята!

session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'}
page = requests.get('https://sec.report/CIK/0000051143.html', headers = headers)
page.content

from bs4 import BeautifulSoup
soup = BeautifulSoup(page.content, 'html.parser')

soup.find_all(class_='panel-body')

1 Ответ

1 голос
/ 25 февраля 2020

Вместо BeautifoulSoup попробуйте с пакетом l xml, для меня проще найти элементы с предложениями xpath:

import requests
from lxml import html

session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'}
page = requests.get('https://sec.report/CIK/0000051143', headers=headers)

raw_html = html.fromstring(page.text)

irs = raw_html.xpath('//tr[./td[contains(text(),"IRS Number")]]/td[2]/text()')[0]

state_incorp = raw_html.xpath('//tr[./td[contains(text(),"State of Incorporation")]]/td[2]/text()')

address = raw_html.xpath('//tr[./td[contains(text(),"Business Address")]]/td[2]/text()')[0]
...