Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 30, 2017 02:56:09

delvin-fil
Зарегистрирован: 2015-11-27
Сообщения: 95
Репутация: +  4  -
Профиль   Отправить e-mail  

Как объединить строки вывода последовательно в одну строку

 #!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
import urllib, re, time, requests
from bs4 import BeautifulSoup
from xml.dom.minidom import parseString
start = time.clock()
headers = {
    'User-Agent': ('Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 '
                   'Firefox/14.0.1'),
    'Accept':
    'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language':
    'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
    'Accept-Encoding':
    'gzip, deflate',
    'Connection':
    'keep-alive',
    'DNT':
    '1'
}
page = requests.get(
    'http://www.cbr.ru/scripts/XML_daily.asp', headers=headers).text
xmldoc = parseString(page)
BYN = xmldoc.getElementsByTagName('Value')[4]
BYN = BYN.firstChild.nodeValue
BYN = re.sub(r',', '.', BYN)
#print (BYN)
URL = 'https://jobs.tut.by/search/vacancy?text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82&only_with_salary=false&search_field=name&area=16&enable_snippets=true&clusters=true&salary='
def get_html(url):
    response = urllib.request.urlopen(url)
    return response.read()
def parse(html):
    soup = BeautifulSoup(html, "lxml")
    table = soup.find('table', class_='l l_auto')
    vacancies = []
    for row in table.find_all(
            'div',
            class_=
            'search-result-description__item search-result-description__item_primary'
    ):
        nazv = row.find_all('div', class_='search-result-item__head')
        region = row.find_all('span', class_='searchresult__address')
        date = row.find_all('span', class_='b-vacancy-list-date')
        company = row.find_all('div', class_='search-result-item__company')
        salary = row.find_all('meta', itemprop='baseSalary')
        nal = row.find_all('div', class_='b-vacancy-list-salary')
        nal = re.sub(r'(\<(/?[^>]+)>)', '', str(nal))
        nal = re.sub(r'\D', '', str(nal))
        if nal == '':
            nal = 0
        #nal = str(float(BYN) * int(nal)) + ' p.'
        vacancies.append({
            'vacancy': nazv[0].a.text,
            'region': region[0].text,
            'date': (date[0].text + " "),
            'company': company[0].a.text.strip(),
            # 'salary' : salary[-1]['content']
            #'salary': salary,
            'nal': nal
        })
    for vacancy in vacancies:
        vacancy = re.sub(r'(\<(/?[^>]+)>)|\[|\]|\\u2062', '', str(vacancy))
        vacancy = re.sub(r'\\xa0', ' ', vacancy)
        print(vacancy)
    finish = time.clock()
    itog = str(round(finish - start, 3))
    print(itog + " sec.")
def main():
    parse(get_html(URL))
if __name__ == '__main__':
    main()
На скрине с Белорусскими:

И с Российскими рублями(57-ая строка):



 import __hello__

Отредактировано delvin-fil (Авг. 30, 2017 03:02:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version