Очистка гиперссылок Stackoverflow с помощью Beautifulsoup

Я изучаю соскоб с Beautifulsoup и использую раздел интересных вопросов Stackoverflow (" https://stackoverflow.com/?tab=интересный ") для практики.

Я хочу извлечь гиперссылки на первые 5 вопросов, которые пользователь пометил «java» И на которые есть хотя бы один ответ (хорошо, если ответ принят, но не является обязательным).

Я посмотрел документацию Beautifulsoup , но не могу ее собрать.

Спасибо за любую помощь!

КОД:

from bs4 import BeautifulSoup
from urllib.request import urlopen

html = urlopen("https://stackoverflow.com/?tab=interesting")
content = html.read()
soup = BeautifulSoup(content)

soup.findAll('a',{'class':'question-hyperlink'}, href = True ,  limit=5)        # question link 
soup.findAll('div', {'class':'status answered'},  limit=5)                      # question answer 
soup.findAll('a',{'class':'post-tag'}, rel ='tag' , text = 'java',  limit=5)    # question user tag

Желаемый результат (в виде гиперссылок):

https://stackoverflow.com/questions/number/first-question-to-meet-the-criteria
https://stackoverflow.com/questions/number/second-question-to-meet-the-criteria
https://stackoverflow.com/questions/number/third-question-to-meet-the-criteria
https://stackoverflow.com/questions/number/forth-question-to-meet-the-criteria
https://stackoverflow.com/questions/number/fifth-question-to-meet-the-criteria 

Всего 1 ответ


Попробуй это:

from bs4 import BeautifulSoup
import requests

html = requests.get("https://stackoverflow.com/?tab=interesting")
soup = BeautifulSoup(html.content)

# find and iterate over all parent divs of questions
for elem in soup.findAll('div',{'class':'question-summary narrow'}):
    # get count of answers
    answer = elem.find("div", {"class": "mini-counts"})
    if answer.text != "0":
        # check if question is tagged with "Java"
        tags = elem.find("div", {"class": "t-java"})
        if tags is not None:
            # print link  
            print(elem.find("a")["href"])

Если вы не получили распечатку, попробуйте изменить тег, например, на t-python .


Есть идеи?

10000