Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Помогите понять, как получать данные с сайта python! (хелп, гуру)

  1. Помогите понять, как получать данные с сайта python! (хелп, гуру)

    Привет всем! Нужна помощь с парсингом данных. Дело такое: у меня есть сайт, с которого мне нужно постоянно тянуть данные (типа цены, новости и т.д.). Подскажите, как это сделать с помощью python? Было бы круто увидеть примеры кода и каких пакетов использовать. Заранее спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Для начала можешь использовать библиотеку `requests`, чтобы скачивать HTML страницы. А затем использовать `BeautifulSoup` из пакета `bs4` для парсинга. Вот пример кода:

    Программный код:

    import requests

    from bs4 import BeautifulSoup


    URL 
    'http://example.com'

    page requests.get(URL)

    soup BeautifulSoup(page.content'html.parser')


    # Для примера: парсим заголовки

    titles soup.find_all('h1')

    for 
    title in titles:

    print(
    title.get_text()) 
    В общем, это для базового старта. Удачи!

  4. Цитата Сообщение от StarlightMonarch
    Привет! Для начала можешь использовать библиотеку `requests`, чтобы скачивать HTML страницы. А затем использовать `BeautifulSoup` из пакета `bs4` для парсинга. Вот пример кода:

    Программный код:

    import requests

    from bs4 import BeautifulSoup


    URL 
    'http://example.com'

    page requests.get(URL)

    soup BeautifulSoup(page.content'html.parser')


    # Для примера: парсим заголовки

    titles soup.find_all('h1')

    for 
    title in titles:

    print(
    title.get_text()) 
    В общем, это для базового старта. Удачи!
    Ого, спасибо за пример! ? Быстро и понятно. А как быть, если на сайте нужна авторизация? Надо логинится или куки хранить?

  5. Самый чоткий способ, если данные динамически подгружаются, это юзать `Selenium`. Ловишь весь JS, эмулируешь браузер и вперед:

    Программный код:

    from selenium import webdriver

    from selenium
    .webdriver.common.by import By

    from selenium
    .webdriver.chrome.service import Service

    from selenium
    .webdriver.chrome.options import Options


    CHROMEDRIVER_PATH 
    'chromedriver' # Путь к драйверу

    URL 'http://example.com'


    options Options()

    options.headless True

    driver 
    webdriver.Chrome(service=Service(CHROMEDRIVER_PATH), options=options)

    driver.get(URL)


    # Пример парсинга текста элемента
    element driver.find_element(By.XPATH'//h1')

    print(
    element.text)


    driver.quit() 
    Используй это, если запросы не помогают.

  6. Цитата Сообщение от bizon.stroy
    Самый чоткий способ, если данные динамически подгружаются, это юзать `Selenium`. Ловишь весь JS, эмулируешь браузер и вперед:

    Программный код:

    from selenium import webdriver

    from selenium
    .webdriver.common.by import By

    from selenium
    .webdriver.chrome.service import Service

    from selenium
    .webdriver.chrome.options import Options


    CHROMEDRIVER_PATH 
    'chromedriver' # Путь к драйверу

    URL 'http://example.com'


    options Options()

    options.headless True

    driver 
    webdriver.Chrome(service=Service(CHROMEDRIVER_PATH), options=options)

    driver.get(URL)


    # Пример парсинга текста элемента
    element driver.find_element(By.XPATH'//h1')

    print(
    element.text)


    driver.quit() 
    Используй это, если запросы не помогают.
    Это мощно! Но Selenium такой медленный, если надо много страниц обработать... Есть что-то поэффективнее, типо для массовых запросов?

  7. А можешь еще использовать библиотеку `Scrapy` для крупных проектов. Она автоматизиpует многие штуки:

    Программный код:

    import scrapy


    class ExampleSpider(scrapy.Spider):

    name "example"

    start_urls = [

    'http://example.com',

    ]


    def parse(selfresponse):

    for 
    title in response.css('h1'):

    yield {
    'title'title.get_text()} 
    Пробуй её, если надо массово фигачить.

  8. Цитата Сообщение от Фарамир
    А можешь еще использовать библиотеку `Scrapy` для крупных проектов. Она автоматизиpует многие штуки:

    Программный код:

    import scrapy


    class ExampleSpider(scrapy.Spider):

    name "example"

    start_urls = [

    'http://example.com',

    ]


    def parse(selfresponse):

    for 
    title in response.css('h1'):

    yield {
    'title'title.get_text()} 
    Пробуй её, если надо массово фигачить.
    Да, Scrapy рулит для продвинутого парсинга, но вот опять же, с авторизацией бывают траблы.

  9. Вы еще про `Puppeteer` не забывайте для Chrome! Он классно для данных с динамичными сайтами.

    Программный код:

    from pyppeteer import launch

    import asyncio


    async def main
    ():

    browser await launch()

    page await browser.newPage()

    await page.goto('http://example.com')

    title await page.title()

    print(
    title)

    await browser.close()


    asyncio.get_event_loop().run_until_complete(main()) 
    Сложнее настройка, но работает так же, как Selenium, если не лучше ?.

  10. Цитата Сообщение от Регина
    Вы еще про `Puppeteer` не забывайте для Chrome! Он классно для данных с динамичными сайтами.

    Программный код:

    from pyppeteer import launch

    import asyncio


    async def main
    ():

    browser await launch()

    page await browser.newPage()

    await page.goto('http://example.com')

    title await page.title()

    print(
    title)

    await browser.close()


    asyncio.get_event_loop().run_until_complete(main()) 
    Сложнее настройка, но работает так же, как Selenium, если не лучше ?.
    Да, Puppeteer вообще тема, но бандлы тяжелеют... У нас раз на раз, ага.

Страница 1 из 2 12 ПоследняяПоследняя