Я новичок в мире python и web-scrappers, я привык делать скребки с динамическими URL, где URI меняются, когда я вводю конкретные параметры в сам URL.
Пример: Википедия.
(Если я введу поиск с именем «Переполнение стека», у меня будет URI, который выглядит следующим образом: https://en.wikipedia.org/wiki/Stack_Overflow)
На данный момент мне предложили разработать веб-скребок для сбора данных с этой страницы .
Поле "Texto / Termos a serem pesquisados" соответствует полю поиска, но когда я ввожу поиск, URL остается прежним, что не позволяет мне получить правильный HTML-код для моего исследования.
Я привык работать с BeautifulSoup и Requests, чтобы выполнить утилизацию, но в этом случае это бесполезно, так как URL остается неизменным после поиска.
import requests
from bs4 import BeautifulSoup
url = 'http://comprasnet.gov.br/acesso.asp?url=/ConsultaLicitacoes/ConsLicitacao_texto.asp'
html = requests.get(url)
bs0bj = BeautifulSoup(html.content,'html.parser')
print(bsObj)
# And from now on i cant go any further
Обычно я делал бы что-то вроде
url = 'https://en.wikipedia.org/wiki/'
input = input('Input your search :)
search = url + input
А затем сделайте все, что нужно в BeautifulSoup, и найдите все, чтобы получить мои данные из кода HTML.
Я тоже пытался использовать Selenium, но я ищу что-то отличное от всего, что связано с веб-драйверами. Со следующим фрагментом кода я достиг некоторых странных результатов, но я все еще не могу хорошо обработать HTML.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import requests
from bs4 import BeautifulSoup
# Acess the page and input the search on the field
driver = webdriver.Chrome()
driver.get('http://comprasnet.gov.br/acesso.asp?url=/ConsultaLicitacoes/ConsLicitacao_texto.asp')
driver.switch_to.frame('main2')
busca = driver.find_element_by_id("txtTermo")
busca.send_keys("GESTAO DE PESSOAS")
#data_inicio = driver.find_element_by_id('dt_publ_ini')
#data_inicio.send_keys("01/01/2018")
#data_fim = driver.find_element_by_id('dt_publ_fim')
#data_fim.send_keys('20/12/2018')
botao = driver.find_element_by_id('ok')
botao.click()
Итак, учитывая все это:
* Есть ли способ удалить данные из этих статических URL?
* Могу ли я ввести поиск в поле с помощью кода?
* Почему я не могу почистить правильный исходный код?