我试图根据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))
假设您已经有变量year
和page
,则可以使用字符串格式来构建具有这些值的新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)