Вход в Wall Street Journal через Python / Запросы - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над академическим проектом, который требует создания различных новостных статей через Интернет с использованием скрипта Python, работающего на основе библиотек Requests и BeautifulSoup. Недавно мне дали задание почистить статьи из Wall Street Journal, и мне дали подписку для входа в систему. Тем не менее, во время прошлых заданий мне никогда не приходилось заходить на веб-сайт перед тем, как просматривать текущую статью. Я следовал основной логике входа в систему с помощью запросов и POST, но похоже, что вход в систему WSJ не следует этому протоколу - я все еще получаю «неподписанную» страницу статьи. Кроме того, предыдущий вопрос, заданный здесь , похоже, указывает на то, что он использует OAuth 2.0 (что-то еще, с чем у меня нет опыта), но, похоже, он обеспечивает решение с помощью сценария оболочки - я ищу Python /Запрашивает решение, если это возможно. С чем я сейчас работаю:

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'

# login
login_url = "https://accounts.wsj.com/login?target="
login_data = {'username':'*******','password':'*******'}
s = requests.Session()
s.post(login_url,data=login_data,headers={'User-Agent':user_agent})

# get article
url = "https://www.wsj.com/articles/rep-elijah-cummings-has-died-11571304573?mod=hp_lead_pos8"
r = s.get(url,headers={'User-Agent':user_agent})
page = r.content
soup = BeautifulSoup(page,'html.parser')

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 17 октября 2019

Прежде всего, я хотел бы убедиться, что «Условия предоставления услуг» WSJ позволяют вам очистить веб-сайт даже для академических исследований. Многие веб-сайты фактически запрещают вам делать это.

Во-вторых, библиотека «запросов» действительно полезна для API (т. Е. Веб-сайтов для компьютеров, а не веб-сайтов для людей). Запрос имеет параметр «auth» для API, которые используют базовую аутентификацию (т. Е. ID / PW, а не отслеживание cookie).

В ваших конкретных случаях вам может потребоваться использовать Selenium. Есть хорошая книга для начинающих по Python и Selenium онлайн.

https://automatetheboringstuff.com/

По своему опыту я использовал селен для создания браузера и входа в систему с ID / PW, а затем автоматизировал нажатие кнопкиссылки и загрузка данных.

Требуется много экспериментов (и разочарований), поэтому я не знаю простого ответа.

...