отсутствует извлечение текста с BeautifulSoup - PullRequest
0 голосов
/ 18 июня 2019

Я использую красивый суп для извлечения данных из тегов ul и li.Я могу получить дату, но некоторые слова отсутствуют, и между строкой нет места.

<li>Developing <span class="bte bte-78432-940">&nbsp;</span>pricing strategy that maximizes profits <span class="bte bte-78432-947">&nbsp;</span>market share <span class="bte bte-78432-962">&nbsp;</span>considers customer satisfaction</li>
<li>Supporting <span class="bte bte-78432-1041">&nbsp;</span>and <span class="bte bte-78432-1045">&nbsp;</span>launching</li>

HTML просмотр текста: - Разработка стратегии ценообразования, которая максимизирует прибыль и долю рынка, но учитывает удовлетворенность клиентов - Поддержказапуск продаж и услуг

Я получаю следующий текст: Разработка стратегии ценообразования, которая максимизирует долю рынка прибыли, учитывает удовлетворенность клиентов. Поддержка и запуск

Отсутствуют слова, например, a и and, продажа.и сервис.Кроме того, они пишутся одной строкой и непрерывно.

Как получить точный текст, как в представлении HTML, если нет bulttet, он должен по крайней мере содержать подчеркивание между каждым маркером.

Код:

 soup = BeautifulSoup(html, 'html.parser')
    ul_jobdetail = soup.find_all('ul',{'class':'job-detail-req'})
    i=1
    for ul_jdetail in ul_jobdetail:
        if i==1:
            duties = ul_jdetail.getText()
            print(ul_jdetail.text)
        else:
            requirements=ul_jdetail.getText()
        i=i+1

1 Ответ

2 голосов
/ 18 июня 2019

Кажется, что страница закодирована с помощью CSS, поэтому сначала загрузите этот CSS, проанализируйте его на предмет необходимой информации (пропущенных слов) и поместите эти слова в суп:

import re
import requests
from bs4 import BeautifulSoup

url = 'https://www.bongthom.com/job_detail/various_positions_78432.html'

soup = BeautifulSoup(requests.get(url).text, 'lxml')
css_url = soup.select_one('link[data-src="escape"]')['href']

for css_class, word in re.findall(r'\.(bte-\d+-\d+).*?"(.*?)"', requests.get(css_url).text):
    for span in soup.select('span.{}'.format(css_class)):
        span.string = word + ' '
        span.unwrap()

for li in soup.select('.job-detail-req li'):
    print(li.text)

Отпечатки:

Developing a pricing strategy that maximizes profits and market share but considers customer satisfaction
Supporting sale and service launching
Creating promotion, advertising and event planning
Developing and managing advertising campaigns
Organizing company conference, Trade shows, and major events
Building brand awareness
Evaluating and maintaining marketing strategy
Directing, planning and coordinating marketing plan
Researching market demand
Handling social media, public relation efforts, and marketing content
Build strategic relationships and partner with key industry players, and agencies
Be in charge of marketing budget and allocate
Up-to-date with the latest trends and best practices in online marketing and measurement
Identify weaknesses in existing marketing campaigns and develop pragmatic solution within budgetary constraints
Communicate with senior management about marketing initiatives and brainstorm fresh strategies
Bachelor degree in Marketing, Business Administration, Communication or relate field (MBA Preferred)
At least five years’ experience in Marketing and Promotion

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