Получить код из элемента inspect с использованием Python

В браузере Safari я могу щелкнуть правой кнопкой мыши и выбрать "Проверить элемент", и появится много кода. Можно ли получить этот код с помощью Python? Лучшее решение - получить файл с кодом.

Более конкретно, я пытаюсь найти ссылки на изображения на этой странице: http://500px.com/popular. Я вижу ссылки из "Inspect Element" и хочу получить их с помощью Python.

1 ответ

Решение

Один из способов получить исходный код веб-страницы - использовать библиотеку Beautiful Soup. Учебник этого показан здесь. Код со страницы показан ниже, комментарии мои. Этот конкретный код не работает, так как содержимое сайта изменилось в качестве примера, но концепция должна помочь вам сделать то, что вы хотите. Надеюсь, поможет.

from bs4 import BeautifulSoup
from urllib2 import urlopen

BASE_URL = "http://www.chicagoreader.com"

def get_category_links(section_url):
    # Put the stuff you see when using Inspect Element in a variable called html.
    html = urlopen(section_url).read()    
    # Parse the stuff.
    soup = BeautifulSoup(html, "lxml")    
    # The next two lines will change depending on what you're looking for. This 
    # line is looking for <dl class="boccat">.  
    boccat = soup.find("dl", "boccat")    
    # This line organizes what is found in the above line into a list of 
    # hrefs (i.e. links). 
    category_links = [BASE_URL + dd.a["href"] for dd in boccat.findAll("dd")]
    return category_links

РЕДАКТИРОВАТЬ 1: Решение, приведенное выше, обеспечивает общий способ веб-скребок, но я согласен с комментариями к вопросу. API - определенно путь для этого сайта. Спасибо Юви за предоставленную информацию. API доступен по адресу https://github.com/500px/PxMagic.


РЕДАКТИРОВАТЬ 2: Есть пример вашего вопроса о получении ссылок на популярные фотографии. Код Python из примера вставлен ниже. Вам нужно будет установить библиотеку API.

import fhp.api.five_hundred_px as f
import fhp.helpers.authentication as authentication
from pprint import pprint
key = authentication.get_consumer_key()
secret = authentication.get_consumer_secret()

client = f.FiveHundredPx(key, secret)
results = client.get_photos(feature='popular')

i = 0
PHOTOS_NEEDED = 2
for photo in results:
    pprint(photo)
    i += 1
    if i == PHOTOS_NEEDED:
        break
Другие вопросы по тегам