在URL中,我如何循环浏览多个未知数的页面并在一年后获取其文本



我试图根据URL中输入的年份提取一些信息。提取的信息来自未知数的页面。

如何替换一年之后,我该如何获得新的URL,以便可以通过此URL来处理从多个页面提取的内容?另外,我希望能够从所有未知数的页面中获取所有信息。

正如我所理解的,我需要一段时间循环。如何检查下一页是否存在?

是否有有效的方法可以做到这一点?谢谢!

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))

假设您已经有变量yearpage,则可以使用字符串格式来构建具有这些值的新URL:

base_url = url = 'https://mywebsite.com/archive.pl?op=bytime&keyword=&year=%s&page=%s'
new_url = base_url % (year, page)

使用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)

最新更新