Цель состоит в том, чтобы очистить несколько страниц , используя BeautifulSoup
, данные которых поступают из модуля requests.get
.
Шаги:
Сначала загрузите html с использованием requests
page = requests.get('https://oatd.org/oatd/' + url_to_pass)
Затем очистите содержимое html
, используя определение ниже:
def get_each_page(page_soup):
return dict(paper_author=page_soup.find(attrs={"itemprop": "name"}).text,
paper_title=page_soup.find(attrs={"itemprop": "name"}).text)
Скажем, у нас есть сотня уникальных URL-адресов, которые нужно удалить ['record?record=handle\:11012\%2F16478&q=eeg'] * 100
, весь процесс может быть завершен с помощью кода ниже:
import requests
from bs4 import BeautifulSoup as Soup
def get_each_page(page_soup):
return dict(paper_author=page_soup.find(attrs={"itemprop": "name"}).text,
paper_title=page_soup.find(attrs={"itemprop": "name"}).text)
list_of_url = ['record?record=handle\:11012\%2F16478&q=eeg'] * 100 # In practice, there will be 100 diffrent unique sub-href. But for illustration purpose, we purposely duplicate the url
all_website_scrape = []
for url_to_pass in list_of_url:
page = requests.get('https://oatd.org/oatd/' + url_to_pass)
if page.status_code == 200:
all_website_scrape.append(get_each_page(Soup(page.text, 'html.parser')))
Однако каждый URL-адрес запрашивается и очищается каждый раз, что в принципе требует времени.
Интересно, есть ли другой способ повысить производительность приведенного выше кода, о котором я не знаю?