Уведомления

Группа в Telegram: @pythonsu

#1 Июль 16, 2018 11:40:44

cubespace
Зарегистрирован: 2018-07-13
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страниц

В нете нашел вот такой пример парсинга страниц:

 import json
from urllib.parse import urljoin
import requests
from parsel import Selector
index = requests.get('http://books.toscrape.com/')
books = []
for href in Selector(index.text).css('.product_pod a::attr(href)').extract():
    url = urljoin(index.url, href)
    book_page = requests.get(url)
    sel = Selector(book_page.text)
    books.append({
        'title': sel.css('h1::text').extract_first(),
        'price': sel.css('.product_main .price_color::text')extract_first(),
        'image': sel.css('#product_gallery img::attr(src)').extract_first()
    })
with open('books.json', 'w') as fp:
    json.dump(books, fp)

Сейчас скрипт проходит только по краткой новости всех книг и берет информацию с главной.
Как его изменить чтобы заходило в страницу (новость) и брало от туда информацию о книге и так так пройтись по каждой книге ?

Офлайн

#2 Авг. 14, 2018 14:50:39

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

Парсинг страниц

Надо больше информации. Какой сайт, какие там теги используют под книги, <pre> не <pre>. И для этой задачи лучше используй bs4 с lxml/html.parser, это будет быстрее, удобнее. А так ничем помочь не могу пока все не выложишь



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Авг. 14, 2018 16:38:55

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

Парсинг страниц

Если нужна будет помощь, пишите на почту)

Офлайн

#4 Авг. 14, 2018 17:38:55

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

Парсинг страниц

sosok43k
Если нужна будет помощь, пишите на почту)
Лол, это тебе помощь нужна, с фига ли я буду париться и писать тебе на почту чтобы ТЕБЕ помочь? Просто выложи весь или большую часть кода сюда и разберемся

UPD: УУПС, извини, я думал это автор топика написал)



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Авг. 14, 2018 17:46:16)

Офлайн

#5 Авг. 14, 2018 21:41:55

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

Парсинг страниц

DamMercul
УУПС, извини, я думал это автор топика написал)
Ничего страшного)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version