Красивый выход супа не очень читаемый - PullRequest
0 голосов
/ 26 мая 2019

Я создал скребок для твиттера, используя библиотеку Beautiful Soup.Мне успешно удалось получить био и верхний твит данного пользователя, используя его имя пользователя.Единственная проблема, с которой я столкнулся, это то, что вывод немного странный, поскольку вывод извлекается из HTML-кода, который содержит много пустых строк.

Я пытался использовать prettify, но все, что возвращается, это пустая строка.Я также пытался использовать pprint.pprint.

Я новичок в python и не могу придумать какой-либо другой способ сделать вывод моего скрипта более точным

Любая помощь будет принята с благодарностью.

Ниже мой скрипт:

import requests
from bs4 import BeautifulSoup
import pprint

q = "https://twitter.com"


def find_bio(username):
    c = format("https://twitter.com"+"/" + username)
    r = requests.get(c)
    s = BeautifulSoup(r.text, "html.parser")

    return s.find("div", class_="ProfileHeaderCard").text


def find_toptweet(username):
    c = format("https://twitter.com"+"/" + username)
    r = requests.get(c)
    s = BeautifulSoup(r.text, "html.parser")

    return s.find("div", class_="content").text


if __name__ == "__main__":
    username = input('enter username: ')
    bio = find_bio(username)
    tweet = find_toptweet(username)
    print("Bio--------------------------------------------------------------")
    pprint.pprint(bio)
    print("End of Bio-------------------------------------------------------")
    print('top tweet')
    pprint.pprint(tweet)

Вывод ниже

enter username: altifali4
Bio--------------------------------------------------------------------------------------
('\n'
 '\n'
 'Altif Ali\n'
 '\n'
 '\n'
 '\n'
 '@AltifAli4\n'
 '\n'
 '\n'
 'People, by and large, are good people\n'
 '\n'
 'UoH\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
' \n'
 '    instagram.com/altif.ali\n'
 '  \n'
 '\n'
 '\n'
 '\n'
 '\n'
 'Joined August 2018\n'
 '\n'
 '\n'
 '\n'
 '    Born 1999\n'
 '\n'
 '\n'
 '\n')
End of Bio---------------------------------------------------------------- ----------------------
top tweet
('\n'
 '\n'
 '\n'
 '\n'
 '\n'
 'Lowkey\u200f\xa0@Lowkey0nline\n'
 '\n'
 'May 22\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 'More\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 'Copy link to Tweet\n'
 '\n'
 '\n'
 'Embed Tweet\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 '\n'
 'Power concedes nothing without demand. Without demand power concedes '
 'nothing.\n')

Process finished with exit code 0

1 Ответ

1 голос
/ 26 мая 2019

попробуйте заменить вас оператором if следующим:

if __name__ == "__main__":
    username = input('enter username: ')
    bio = find_bio(username).replace("\n","")
    tweet = find_toptweet(username).replace("\n","")
    print("Bio--------------------------------------------------------------")
    print(bio)
    print("End of Bio-------------------------------------------------------")
    print('top tweet')
    print(tweet)

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...