0 / 0 / 0
Регистрация: 10.06.2020
Сообщений: 29

Парсинг достопримечательностей

11.01.2022, 22:33. Показов 720. Ответов 0

Студворк — интернет-сервис помощи студентам
Прошу помочь

Есть код

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import time
 
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
import selenium.webdriver as webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
 
def getPersons():
    headers = {
        "Accept": "text / html, application / xhtml + xml, application / xml; q = 0.9, image / avif, image / webp, * / *;q = 0.8",
        "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64; rv: 95.0) Gecko / 20100101 Firefox / 95.0"
    }
    url = "http://global-volgograd.ru/person"
    host = "http://global-volgograd.ru"
 
    response = requests.get(url=url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")
    pages = soup.find("div", "pager").find_all("li", "pager-item")
    FIO = []
    isFirst = True
    for page in pages:
        if isFirst:
            parsePersons(soup, FIO)
            isFirst = False
        else:
            url = host + page.find("a").get("href")
            response = requests.get(url=url, headers=headers)
            while response.status_code != 200:
                response = requests.get(url=url, headers=headers)
            soup = BeautifulSoup(response.text, "html.parser")
            parsePersons(soup, FIO)
 
    with open("persons.gzt", "w", encoding="utf-8", errors="ignore") as file:
        id = 1
        for fio in FIO:
            fio_split = fio.split(" ")
            file.write(f"PersonsNames \"{fio_split[1]}_{fio_split[0]}_{id}\"\n")
            file.write("{\n\tkey = ")
            if len(fio_split) == 2:
                file.write(f"\"{fio}\"")
                file.write(f" | \"{fio_split[1]} {fio_split[0]}\"")
            else:
                file.write(f"\"{fio}\"")
                file.write(f" | \"{fio_split[1]} {fio_split[2]} {fio_split[0]}\"")
                file.write(f" | \"{fio_split[0]} {fio_split[1]}\"")
                file.write(f" | \"{fio_split[1]} {fio_split[0]}\"")
            file.write(";\n\tlemma = ")
            file.write(f" \"{fio_split[1]} {fio_split[0]}\";")
            file.write("\n}\n\n")
            id += 1
 
 
def parsePersons(soup, FIO):
    items = soup.find_all("div", "person-block")
    for item in items:
        fio = item.find("div", "title").get_text(strip=True)
        fio = fio.split(" ")
        fio[0] = fio[0].capitalize()
        if len(fio) == 3:
            fio = fio[0] + " " + fio[1] + " " + fio[2]
        else:
            fio = fio[0] + " " + fio[1]
        FIO.append(fio)
 
 
def getAttractions():
    driver = webdriver.Chrome()
    attractions = []
    try:
        url = "https://avolgograd.com/sights?obl=vgg"
        driver.get(url)
        driver.find_element_by_id("true-loadmore").click()
        time.sleep(10)
        soup = BeautifulSoup(driver.page_source, "html.parser")
        items = soup.find_all("div", "ta-f-box ta-f-box-cat")
        for item in items:
            attractions.append(item.find("div", "ta-200").find("div", "ta-211").get_text(strip=True))
    except Exception as ex:
        print(ex)
    finally:
        driver.close()
 
    with open("attractions.gzt", "w", encoding="utf-8", errors="ignore") as file:
        for attraction in attractions:
            attraction = attraction.replace("\"", "")
            file.write(f"AttractionsNames \"{attraction.replace(' ', '_')}\"\n")
            file.write("{\n\tkey = ")
            file.write(f"\"{attraction}\";\n\tlemma = \"{attraction}\";\n")
            file.write("}\n\n")
 
if __name__=="__main__":
    getPersons()
    getAttractions()
Парсинг персон - getPersons работает, а вот парсинг достопримечательностей - getAttractions нет.

При обработке getAttractions система пишет

C:\Users\Asus\source\repos\TestSem\TestS em\TestSem.py:75: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
driver.find_element_by_id("true-loadmore").click()
Message: element click intercepted: Element <div id="true-loadmore">...</div> is not clickable at point (349, 659). Other element would receive the click: <iframe id="aswift_3" name="" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="1005" height="124" frameborder="0" src="https://googleads.g.doubleclick.net/pagead/html/r20220106/r20110914/zrt_lookup.html?fsb=1#RS-0-&amp;adk=1812271801&amp;client=ca-pub-0519859495508416&amp;fa=1&amp;ifi=4&amp; uci=a!4&amp;btvi=1" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" allow="attribution-reporting" style="display: block; margin: 0px auto;" data-google-container-id="a!4" data-google-query-id="CIPWpty3qvUCFYGRmgodlHQC6w" data-load-complete="true"></iframe>
(Session info: chrome=97.0.4692.71)

Что делать с true-loadmore?

Сайт достопримечательностей, который надо распарсить - https://avolgograd.com/sights?obl=vgg
Миниатюры
Парсинг достопримечательностей  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2022, 22:33
Ответы с готовыми решениями:

Парсинг по порядку или парсинг до определенного тега
Доброго времени друзья! Подскажите пожалуйста, к примеру есть вот такой html код: &lt;div class=&quot;container mt-3&quot;&gt; ...

Составьте программу, которая загружает из файлов и выводит на экран изображение достопримечательностей Минска
Составьте программу, которая загружает и из файла и выводит на экран изображение достопримечательностей Минска или другого города....

Парсинг JSON ответа. Парсинг строки с массивами
public class LocationData { public double Center { get; set; } } public class Field : IField ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2022, 22:33
Помогаю со студенческими работами здесь

Парсинг JSON ответа. Парсинг строки с массивами
Есть ответ с сервера в виде json: ,\&quot;Polygon\&quot;:,]}&quot;, &quot;OrganizationId&quot;: 2, &quot;SyncDate&quot;: &quot;2021-01-20T11:23:42.007&quot; ...

Парсинг вк
Добрый день.Пытаюсь написать парсер стены вк.Хочу обратится с помощью post запроса к https://vk.com/al_wall.php , но мне возвращает...

Парсинг
Пытаюсь спарсить след. код &lt;div id=&quot;region_links&quot;&gt; &lt;fieldset style=&quot;padding: 10px;&quot;&gt; &lt;table&gt; &lt;tr&gt; &lt;th...

парсинг
Я не знал в какой раздел написать, тк я даже не знаю куда это относится. Если не сложно скиньте легкий пример парсинга, а так же какую...

Парсинг бд
Мне нужна только маленькая деталь, нужно чтобы скрипт парсил игры из бд у которых status=3 Заранее спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru