Я собираюсь вычеркнуть графики глубины НФЛ из веб-страниц, например. https://www.ourlads.com/nfldepthcharts/archive/220/BUF. Теперь я хочу получить все ссылки на страницы такого типа, но исходный код выпадающего меню «Архивные даты» не содержит ссылок:
<option value="">-- Archive Dates --</option>
<option value="220">05/01/2019</option>
<option value="219">04/01/2019</option>
<option value="218">03/01/2019</option>
<option value="217">02/01/2019</option>
<option value="216">01/01/2019</option>
<option value="215">12/01/2018</option>
<option value="214">11/01/2018</option>
<option value="213">10/01/2018</option>
<option value="212">09/01/2018</option>
<option value="211">08/01/2018</option>
Я читаю пост Веб-скриншот получить данные Python , что мне кажется полезным, поскольку он указал, что веб-страница использует JavaScript.
Но этот ответ использует селен. Интересно, смогу ли я решить проблему с помощью скрапа или Beautifulsoup.
Ниже приведена структура моего скребка.
class depth_chart_archive_spider(scrapy.Spider):
name = "depth_chart_archive"
start_urls = ('https://www.ourlads.com/nfldepthcharts/',)
def parse(self, response):
dchome = BeautifulSoup(response.body, 'html.parser')
# get the links somehow
for link in links:
yield scrapy.Request(link, callback = self.parse_team)
def parse_team(self, response):
# parse the page