Получение текста по ссылке <a>href с помощью Beautifulsoup - PullRequest
0 голосов
/ 14 декабря 2018

Я пытался создать универсальный метод, чтобы я мог анализировать любой URL и классы;Они были успешными, но сейчас я хотел бы собрать данные из текста;вместо названия.Etc: "Xiaomi 70Mai Pro"

Я пробовал ссылаться на эти два источника;но я все еще не уверен ...

  1. WebScrapper-Sample

  2. Анализ таблицы HTML для URL, Поместите в Список

    links = 'SampleLink... with table cell'
    
    def getURLData(url):  # scrap data from Link
    try:
        page = requests.get(url)
        content = page.content
        soup = BeautifulSoup(content, "html.parser")
        return soup
    except Exception as e:
        print('Error.getURLData:', e)
        return None
    
    
    inputLink = getURLData(links)
    
    
    def tableCheck():  # if there's a table cell;
    data = []
    for table_tag in inputLink.find_all('td', {'class': 'row1'}):
        topic_title = table_tag.find('a', href=True)
        if topic_title:
            datum = {'topic_title': topic_title['title']}
            data.append(datum)
    return data
    
    
    print(tableCheck())
    

это был вывод

  {'topic_title': 'This topic was started: Dec 6 2018, 12:20 PM'}, 
  {'topic_title': 'This topic was started: Nov 19 2018, 10:30 AM'}, 
  {'topic_title': 'This topic was started: Nov 28 2018, 09:16 PM'},
  {'topic_title': 'This topic was started: Oct 3 2018, 11:10 AM'}, 

это ячейка, из которой я пытаюсь извлечь данные;Я пытался использовать topic_title = table_tag.find('a', href=True).text, но я действительно сомневаюсь, что это сработает;Я до сих пор не очень знаком с BeautifulSoup, и я немного застрял, думая, как бы получить данные;попробовать другой цикл?извлечь данные в нем?

<td class = "row1" valign = "middle" >
   <div >
        <div style = "float:left" >
           <a href = "/topic/4667583" title = "This topic was started: Oct 3 2018, 
            11:10 AM" > 
           Xiaomi 70Mai Pro < /a >
        </div >
        <br >
    </div >
    </td

1 Ответ

0 голосов
/ 14 декабря 2018

Чтобы добавить к существующему ответу, единственное изменение, которое вам нужно сделать, это добавить текст ссылки в ваш словарь :

topic_title = table_tag.find('a', href=True)
if topic_title:
    datum = {
        'topic_title': topic_title['title'], 
        'topic_text': topic_title.text
    }
    data.append(datum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...