Мне удалось получить запросы на работу при вызове URL-адреса с определенными заголовками, и html страниц печатается, когда я вызываю r.content.
url = 'http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=9854726.PN.&OS=PN/9854726&RS=PN/9854726'
HEADERS = { 'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0"}
r = requests.get(url, headers = HEADERS)
r = r.content
Вывод соответствует ожидаемому (это сокращенная версиятак как я не хочу спамить весь html):
<HTML>
<HEAD>
<BASE target="_top">
<TITLE>United States Patent: 9854726</TITLE></HEAD>
<!-BUF1=9854726
BUF7=2018
BUF8=48007
BUF9=/1/
BUF51=9
-->...
Однако, когда я передаю его в BeautifulSoup
soup = BeautifulSoup(r)
print soup.prettify()
, он только распечатывает:
<html>
<head>
<base target="_top" />
<title>
United States Patent: 9854726
</title>
</head>
</html>
Он не распечатывает полный HTML.Мне было интересно, есть ли какие-нибудь быстрые решения для этого?Я пытался кодировать запросы в UTF-8, но это не сработало.Я также пытался использовать r.text вместо r.content, но безрезультатно.
Я знаю, что USPO - это старый веб-сайт, поэтому, если нет простых решений, чем я собираюсь попробоватьразобрать его с помощью регулярного выражения
Редактировать: Я только что понял.Проблема заключалась в том, что вывод BeautifulSoup не был отформатирован должным образом.Я использовал регулярные выражения, чтобы удалить его и присоединить его обратно с оригинальным HTML, и это сработало!Спасибо за помощь