Красивый суп не вернет ничего разборчивого - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь очистить несколько веб-страниц, которые должны быть идентичными по макету. Некоторые из них хорошо очищают, а другие возвращают пустые списки. печать содержимого страницы возвращает различные формы гиббери sh.

исходный код настройки:

import csv
import requests
from bs4 import BeautifulSoup
import soupsieve

addresses = ["https://aWebsite.asp?id=1234"]

for a in range(0,len(addresses)):
    url = addresses[a]

    page = requests.get(url)

Но отсюда я получаю различные формы гиббери sh независимо от того, какая кодировка или функции, которые я использую.

Когда я пытаюсь:

soup = BeautifulSoup(page.content) #or soup = BeautifulSoup(page.content, features="lxml")
cells = soup.select("tr p")
    print(soup)
    print(cells)

Он печатает:

<html><body><p>‹      ¼XñOܸþ™JïüTR½Y8½+…Mž(P•{TÔëUò&amp;</p></body></html>

[]

Когда я пытаюсь:

soup = BeautifulSoup(page.content, features='html.parser')

cells = soup.select("tr p")
print(soup)
print(cells)

Он печатает: (Я замкнул суповую печать, поскольку она была длинной, но это образец)

5���������/�b뱻��־E�g;�jw��&amp;����Ͻ��a��`~�?]5-�
�����[+�j</em"�p��></m.ﻟ�s)1�3�s�c{uoũⶰ�v^goh�m���;h�></f�g���*></n�`�<7`�ly��x�#tb></ii�����t�>

[]

Когда я пытаюсь:

soup = BeautifulSoup(page.content).get_text().strip().encode("utf-8")

cells = soup.select("tr p")
print(soup)
print(cells)

Он печатает:

b'\xe2\x80\xb9      \xc2\xbc=\xc3\x9br\xc2\xb9r\xc3\x8fR\xc3\x95\xc3\xbe'

Traceback (most recent call last):
  File "warn_scrape.py", line 45, in <module>
    cells = soup.select("tr p")
AttributeError: 'bytes' object has no attribute 'select'

Когда я пытаюсь:

soup = BeautifulSoup(page.content)

    cells = soup.select("tr p").get_text()
    print(soup)
    print(cells)

Он печатает:

<html><body><p>‹      ¼</p></body></html>

Traceback (most recent call last):
  File "warn_scrape.py", line 45, in <module>
    cells = soup.select("tr p").get_text()
AttributeError: 'list' object has no attribute 'get_text'

Я пробовал много других способов и комбинаций вышеперечисленного, включая .prettify и `encode (" ascii ") ', и все они возвращают пустые списки и некоторую форму gibberi sh html

...