Получить код из элемента 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