Новичок здесь. Я просто практикую питон самостоятельно.
Моя проблема в следующем:
Я просматриваю веб-сайт ramdom, и я хотел получить имя файла и дату файла и распечатать их вместе. Но лишние html-теги все еще существуют, и я не могу избавиться от них, даже если использую get_text и prettify. Извините за вопрос нуба. Просто нужна была помощь. Заранее спасибо.
Это мой код:
from bs4 import BeautifulSoup
import requests
source = requests.get('https://1337x.to/popular-tv').text
soup = BeautifulSoup(source, 'lxml')
tvhead = soup.find('tbody')
for tv in tvhead.find_all('tr'):
filename = tv.find_all('td' , class_='coll-1 name')
filedate = tv.find_all('td', class_='coll-date')
print(filename)
print(filedate)
print()
вывод такой:
[<td class = "coll-1 name"><a class = "icon" href = "/sub/41/0/"><i class = "flaticon-hd"></i></a><a href = "/torrent/3225547/Castle-Rock-S01E10-Romans-720p-HULU-WEB-DL-AAC2-0-H-264-NTb-eztv/">Castle.Rock.S01E10.Romans.720p.HULU.WEB-DL.AAC2.0.H.264-NTb[eztv]</a></td>]
[<td class = "coll-date">7am Sep. 12th</td>]
[<td class = "coll-1 name"><a class = "icon" href = "/sub/6/0/"><i class = "flaticon-divx"></i></a><a href = "/torrent/3225539/Castle-Rock-S01E10-Romans-480p-HULU-WEB-DL-AAC2-0-H-264-BTW-ettv/">Castle.Rock.S01E10.Romans.480p.HULU.WEB-DL.AAC2.0.H.264-BTW[ettv]</a></td>]
[<td class = "coll-date">7am Sep. 12th</td>]
[<td class = "coll-1 name"><a class = "icon" href = "/sub/6/0/"><i class = "flaticon-divx"></i></a><a href = "/torrent/3225653/The-Outpost-S01E08-WEB-h264-TBS-ettv/">The.Outpost.S01E08.WEB.h264-TBS[ettv]</a></td>]
[<td class = "coll-date">9am Sep. 12th</td>]
Ожидаемый результат должен состоять только из заголовка и даты, например:
TV Series title
Date
Вы пробовали scrapy? scrapy.org
извините, нет, не видел. попробую сейчас.
Лично у меня был хороший опыт использования его для подобных проектов. Если это подходит, возможно, это поможет вам организовать код и масштабировать его, когда он будет готов.
Пытаться:
from bs4 import BeautifulSoup
import requests
source = requests.get('https://1337x.to/popular-tv').text
soup = BeautifulSoup(source, 'lxml')
tvhead = soup.find('tbody')
for tv in tvhead.find_all('tr'):
filename = tv.find_all('td' , class_='coll-1 name')
filedate = tv.find_all('td', class_='coll-date')
print(filename[0].text)
print(filedate[0].text)
print()
У меня такая ошибка: Traceback (most recent call last): File "C:/Users/R/Pycharm/W3PythonPractise/Scarapenew.py", line 27, in <module> print(filename.get_text()) File "C:\Python37\lib\site-packages\bs4\element.py", line 1884, in __getattr__ "ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key AttributeError: ResultSet object has no attribute 'get_text'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?
Ну вот. Кодировать воображение сложно. Пришлось запустить это самому.
Спасибо. Работает. просто узнайте новый способ очистки данных. Еще раз спасибо.
вы можете добавить свой текущий результат и ожидаемый результат?