Как я могу просмотреть несколько неизвестных страниц и получить их текст после замены года в URL? - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь извлечь некоторую информацию на основе года, введенного в URL.Извлеченная информация взята с неизвестного количества страниц.

Как получить новый URL-адрес после замены года, чтобы этот URL-адрес можно было передать для обработки содержимого, извлеченного из нескольких страниц?Кроме того, я хочу иметь возможность получать всю информацию со всех неизвестных страниц.

Как я понял, мне понадобится цикл while.Как проверить, существует ли следующая страница?

Существует ли эффективный способ сделать это?Спасибо!

import requests
from datetime import datetime
from bs4 import BeautifulSoup
from urllib import parse
from time import sleep

input_year = int(input("Enter year here >>: "))

def print_info(response_text):
    soup = BeautifulSoup(response_text, 'lxml')
    for info in soup.find_all('div', class_='grid'):
        for a in info.find_all('a'):
            if a.parent.name == 'div':
                print (''.join(text for text in a.find_all(text=True)))

url = 'https://mywebsite.org/archive.pl?op=bytime&keyword=&year={}&page={}'.format(input_year,1)

response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml')

#current page number
page_number_tag = soup.find('span', class_='active tcenter')
page_number = page_number_tag.text

#next page number 
for x in soup.find_all('div', class_='t'):
    for a in x.find_all('a'):
        if a.parent.name == 'div':
            next_page_number = ''.join(text for text in a.find_all(text=True))


Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Используйте format и передайте несколько аргументов, как показано ниже. В этом примере вы можете указать год и страницу так, как хотите.

year=2019
for page in range(1,10):
   url = 'https://mywebsite.com/archive.pl?op=bytime&keyword=&year={}&page={}'.format(year,page)
   print(url)
0 голосов
/ 04 мая 2019

Если у вас уже есть переменные year и page, вы можете использовать форматирование строки для создания нового URL с такими значениями:

base_url = url = 'https://mywebsite.com/archive.pl?op=bytime&keyword=&year=%s&page=%s'
new_url = base_url % (year, page)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...