очистить данные от 1 страницы go до следующей страницы и т. д. javascript используется на веб-сайте - PullRequest
0 голосов
/ 11 марта 2020

Я перепробовал множество различных возможностей поиска информации в Интернете и надеюсь получить здесь некоторую помощь. У меня есть некоторый код Python, который дает мне то, что я хочу, со страницы 1 моего сайта.

response = requests.get(url)

soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find(id='preblockBody')
results
print(results.prettify())
job_elems = results.find_all('table', class_='pbListingTable')
for job_elem in job_elems:
    title_elem2 = job_elem.find_all('tr', class_='pbListingTable1')
for pbListingTable1 in job_elem.find_all('tr', {'class':'pbListingTable1'}):
    print(pbListingTable1.text)
    title_elem = job_elem.find_all('tr', class_='pbListingTable0')
for pbListingTable0 in job_elem.find_all('tr', {'class':'pbListingTable0'}):
    print(pbListingTable0.text)

Затем я бы хотел go перейти на следующую страницу и сделать то же самое, просматривая все страниц до конца и объединяя все. Однако у меня возникли некоторые проблемы, поскольку действие на следующей странице выполняется в javascript примерно так:

<a href="javascript:gotoNextPage(2)">&nbsp;2&nbsp;</a>

После дальнейшей проверки веб-сайта я вижу, что действие:

<script language="JavaScript">
function sortPage(i) {
document.location = baseHref + "website" + i;
}
function gotoNextPage(i) {
document.location = baseHref + "website" + i;
}

Я довольно новичок во всем этом, поэтому я довольно застрял. Любое руководство высоко ценится. Как я могу перейти на следующую страницу, l oop через все их, а затем объединить?

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Еще раз спасибо за все предложения, я переписал с использованием Selenium, и теперь я просто надеюсь получить некоторую помощь, просматривая все страницы и добавляя к одному выводу. Вот мой код:

table = driver.find_element_by_id('preblockBody')

job_elems = table.find_elements_by_xpath("//*[contains(@class,'pbListingTable')]")
for value in job_elems:
    print(value.text)

nxt=driver.find_element_by_xpath("//a[contains(@href, 'gotoNextPage(2)')]")
driver.execute_script("arguments[0].click();", nxt)
0 голосов
/ 12 марта 2020

Помогает ли это?

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox()


driver.get(url)

##your code goes here##

nxt=driver.find_element_by_xpath("//a[contains(@href, 'gotoNextPage(2)')]")
driver.execute_script("arguments[0].click();", nxt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...