<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://dokuwiki.webmastermsk.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://dokuwiki.webmastermsk.ru/feed.php">
        <title> python:parsers</title>
        <description></description>
        <link>https://dokuwiki.webmastermsk.ru/</link>
        <image rdf:resource="https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-08-12T13:12:41+0000</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:json_from_ajax&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiple_data&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiprocessing&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:pagination&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:plain_text_from_ajax&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:postgres_peewee&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:proxy&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:table_data&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:ua-footbal&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:user-agent&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:wordpress.org&amp;rev=1673515089&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:write_reade_csv&amp;rev=1673515089&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico">
        <title></title>
        <link>https://dokuwiki.webmastermsk.ru/</link>
        <url>https://dokuwiki.webmastermsk.ru/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:json_from_ajax&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:json_from_ajax</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:json_from_ajax&amp;rev=1673515089&amp;do=diff</link>
        <description>json from ajax


import requests
from bs4 import BeautifulSoup
import csv

def get_html(url):
    r = requests.get(url)
    return r

def write_csv(data):
    with open('videos.csv', 'a', encoding='utf-8') as f:
        order = ['name', 'url']
        writer = csv.DictWriter(f, fieldnames=order)
        writer.writerow(data)

def get_page_data(response):
    if 'html' in response.headers['Content-Type']:
        html = response.text
    else:
        html = response.json()['content_html']

    s…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiple_data&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:multiple_data</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiple_data&amp;rev=1673515089&amp;do=diff</link>
        <description>multiple data


import requests
from bs4 import BeautifulSoup
import csv



def get_html(url):
    r = requests.get(url)
    return r.text


def refined(s):
    # 1,470 total ratings
    r = s.split(' ')[0]   # 1,470
    return r.replace(',', '') # 1470


def write_csv(data):
    with open('plugins.csv', 'a') as f:
        writer = csv.writer(f)

        writer.writerow( [data['name'],
                         data['url'],
                         data['reviews']] )


def get_data(html):
    sou…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiprocessing&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:multiprocessing</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:multiprocessing&amp;rev=1673515089&amp;do=diff</link>
        <description>Multiprocessing

Многопоточность в python с помощью модуля multiprocessing 


import requests
import csv
# Многопоточность
from multiprocessing import Pool
from time import sleep

def get_html(url):
    # sleep(1)
    r = requests.get(url)
    return r.text


def write_csv(data):
    with open('websites.csv', 'a',  encoding='utf-8') as file:
        order = ['name', 'url', 'description', 'traffic', 'percent']
        writer = csv.DictWriter(file, fieldnames=order)
        writer.writerow(data)

…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:pagination&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:pagination</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:pagination&amp;rev=1673515089&amp;do=diff</link>
        <description>Парсер с использованием пагинации

example 1

Фломатируя url пробежимся по нескольким страницам


import requests
from bs4 import BeautifulSoup
import csv



def get_html(url):
    r = requests.get(url)
    if r.ok: # 200  ## 403 404
        return r.text
    print(r.status_code)


def refine_cy(s):
    # ТИЦ: 500000 -&gt; ['ТИЦ:', '500000']
    return s.split(' ')[-1]


def write_csv(data):
    with open('yaca.csv', 'a') as f:
        writer = csv.writer(f)
        writer.writerow((data['name'],
 …</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:plain_text_from_ajax&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:plain_text_from_ajax</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:plain_text_from_ajax&amp;rev=1673515089&amp;do=diff</link>
        <description>plain/text from ajax


import requests
import csv


def get_html(url):
    r = requests.get(url)
    return r.text


def write_csv(data):
    with open('websites.csv', 'a', encoding='utf-8') as f:
        order = ['name', 'url', 'description', 'traffic', 'percent']
        writer = csv.DictWriter(f, fieldnames=order)
        writer.writerow(data)


def main():

    for i in range(0, 6428):
        url = 'https://www.liveinternet.ru/rating/ru//today.tsv?page={}'.format(str(i))
        response = …</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:postgres_peewee&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:postgres_peewee</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:postgres_peewee&amp;rev=1673515089&amp;do=diff</link>
        <description>postgres peewee


import csv

#ORM для бд
from peewee import *


#Установка соединения
db = PostgresqlDatabase(database='test', user='postgres', password='2619192', host='db')

# Описание таблички coin
class Coin(Model):
    # Поля таблицы
    name = CharField()
    url = TextField()
    price = CharField()

def main():
    # соединение с бд
    db.connect()
    # Создаем табличку, внутрь передается список таблиц которые надо создать
    db.create_tables([Coin])

    # Открываем csv файл на чтен…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:proxy&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:proxy</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:proxy&amp;rev=1673515089&amp;do=diff</link>
        <description>proxy


import requests
from bs4 import BeautifulSoup
from random import choice


def get_proxy():
    html = requests.get('https://free-proxy-list.net/').text
    soup = BeautifulSoup(html, 'lxml')

    trs = soup.find('table', id='proxylisttable').find_all('tr')[1:13]

    proxies = []

    for tr in trs:
        tds = tr.find_all('td')
        ip = tds[0].text.strip()
        port = tds[1].text.strip()
        schema = 'https' if 'yes' in tds[6].text.strip() else 'http'
        proxy = {'sche…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:table_data&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:table_data</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:table_data&amp;rev=1673515089&amp;do=diff</link>
        <description>table data


import requests
from bs4 import BeautifulSoup
import csv


def get_html(url):
    r = requests.get(url)
    return r.text


def write_csv(data):
    with open('cmc.csv', 'a') as f:
        writer = csv.writer(f)

        writer.writerow([data['name'],
                         data['symbol'],
                         data['url'],
                         data['price']])


def get_page_data(html):
    soup = BeautifulSoup(html, 'lxml')

    trs = soup.find('table', id='currencies').fi…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:ua-footbal&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:ua-footbal</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:ua-footbal&amp;rev=1673515089&amp;do=diff</link>
        <description>ua-football.com

Парсер забирает новости со страницы ua-football.com/sport


# https://pypi.org/project/beautifulsoup4/ - установить сторонний пакет с помощью пакетного менеджера pip

# pip freeze - список установленных пакетов
# pip install beautifulsoup4  установить пакет

from bs4 import BeautifulSoup
import urllib.request

# Создаем запрос к сайту
req = urllib.request.urlopen('https://www.ua-football.com/sport')
# Читаем ответ
html = req.read()

# Парсим страницу, features='html.parser' - мо…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:user-agent&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:user-agent</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:user-agent&amp;rev=1673515089&amp;do=diff</link>
        <description>User-Agent


import requests
from bs4 import BeautifulSoup
import csv

def get_html(url):
    header = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0',
        'From': 'youremail@domain.com'
    }
    r = requests.get(url, headers=header)
    return r.text

def get_articles(html):
    soup = BeautifulSoup(html, 'lxml')
    ts = soup.find('div', class_='testimonial-container').find_all('article')
    return ts

def get_data(ts):
    for item…</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:wordpress.org&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:wordpress.org</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:wordpress.org&amp;rev=1673515089&amp;do=diff</link>
        <description>wordpress.org

Будет Распарсен заголовок страницы:


import requests
from bs4 import BeautifulSoup


def get_html(url):
    r = requests.get(url)
    return r.text


def get_data(html):
    soup = BeautifulSoup(html, 'lxml')
    h1 = soup.find('div', id='home-welcome').find('header').find('h1').text
    return h1



def main():
    url = 'https://wordpress.org/'
    print(get_data(get_html(url)))



if __name__ == '__main__':
    main()</description>
    </item>
    <item rdf:about="https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:write_reade_csv&amp;rev=1673515089&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T09:18:09+0000</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsers:write_reade_csv</title>
        <link>https://dokuwiki.webmastermsk.ru/doku.php?id=python:parsers:write_reade_csv&amp;rev=1673515089&amp;do=diff</link>
        <description>чтение запись csv


import csv


def write_csv(data):
    with open('names.csv', 'a') as file:
        writer = csv.writer(file)
        writer.writerow((data['name'], data['surname'], data['age']))


def write_csv2(data):
    with open('names.csv', 'a') as file:
        order = ['name', 'surname', 'age']
        writer = csv.DictWriter(file, fieldnames=order)

        writer.writerow(data)




def main():
    d = {'name': 'Petr', 'surname': 'Ivanov', 'age': 21}
    d1 = {'name': 'Ivan', 'surnam…</description>
    </item>
</rdf:RDF>
