Одним из возможных способов было бы просто сгенерировать все необходимые URL-адреса, добавив список нормальных URL-адресов с "& Adjust_YR = 2018" и очистив каждый сайт.
Лично мне нравится использовать xpath (язык для навигацииhtml структуры, очень полезные для очистки!) и рекомендуют не использовать совпадения строк для фильтрации данных из HTML, так как когда-то мне было рекомендовано .Простой способ использования xpath - через библиотеку lxml.
from lxml import html
<your setup>
....
for site in major_sites:
page = 1
while True:
# fetch table
url = "http://www.boxofficemojo.com/movies/alphabetical.htm?letter=" + site + "&p=.htm&page=" + str(page)
print(url)
element_tree = html.parse(url)
rows = element_tree.xpath('//td/*/a[contains(@href, "movies/?id")]/@href')
rows_adjusted = ['http://www.boxofficemojo.com' + row + '&adjust_yr=2018' for row in rows]
# then loop over the rows_adjusted and grab the necessary info from the page
Если вам удобно использовать библиотеку pandas dataframe, я также хотел бы указать на функцию pd.read_html (), которая в моеммнение, предопределено для этой задачи.Это позволит вам очистить целую алфавитную страницу почти в одну строку.Кроме того, вы можете выполнять любые необходимые замены / аннотации впоследствии по столбцам.
Один из возможных путей может быть таким.
import pandas as pd
<your setup>
....
for site in major_sites:
page = 1
while True:
# fetch table
url = "http://www.boxofficemojo.com/movies/alphabetical.htm?letter=" + site + "&p=.htm&page=" + str(page)
print(url)
req = requests.get(url=url)
# pandas uses beautifulsoup to parse the html content
content = pd.read_html(req.content)
# chose the correct table from the result
tabular_data = content[3]
# drop the row with the title
tabular_data = tabular_data.drop(0)
# housekeeping renamer
tabular_data.columns = ['title', 'studio', 'total_gross', 'total_theaters',
'opening_gross', 'opening_theaters', 'opening_date']
# now you can use the pandas library to perform all necessary replacement and string operations
Дополнительные ресурсы: В Википедии есть хороший обзор синтаксиса xpath