как очистить информацию о продукте на веб-странице amazon с помощью beautifulsoup

Для веб-страницы: http://www.amazon.com/Harry-Potter-Prisoner-Azkaban-Rowling/dp/0439136369/ref=pd_sim_b_2?ie=UTF8&refRID=1MFBRAECGPMVZC5MJCWG. Как я мог очистить детали продукта и вывести dict в python. В приведенном выше случае вывод dict, который я хочу получить, будет:

Age Range: 9 - 12 years Grade Level: 4 - 7 ... ... 

Я новичок в beautifulsoup и не нашел хорошего примера, чтобы это произошло. Я хочу привести пример.

2 Solutions collect form web for “как очистить информацию о продукте на веб-странице amazon с помощью beautifulsoup”

Идея состоит в том, чтобы перебирать все элементы Product Details с помощью table#productDetailsTable div.content ul li CSS selector , затем использовать жирный текст в качестве ключа и следующего брата как значение:

 from pprint import pprint from bs4 import BeautifulSoup import requests url = 'http://www.amazon.com/dp/0439136369' response = requests.get(url, headers={'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36'}) soup = BeautifulSoup(response.content) tags = {} for li in soup.select('table#productDetailsTable div.content ul li'): try: title = li.b key = title.text.strip().rstrip(':') value = title.next_sibling.strip() tags[key] = value except AttributeError: break pprint(tags) 

Печать:

 { u'Age Range': u'9 - 12 years', u'Amazon Best Sellers Rank': u'#1,440 in Books (', u'Average Customer Review': u'', u'Grade Level': u'4 - 7', u'ISBN-10': u'0439136369', u'ISBN-13': u'978-0439136365', u'Language': u'English', u'Lexile Measure': u'880L', u'Mass Market Paperback': u'448 pages', u'Product Dimensions': u'1.2 x 5.2 x 7.8 inches', u'Publisher': u'Scholastic Paperbacks (September 11, 2001)', u'Series': u'Harry Potter (Book 3)', u'Shipping Weight': u'11.2 ounces (' } 

Обратите внимание, что мы разрываем цикл, как только попадаем в AttributeError . Это происходит после того, как внутри элемента li нет более жирного текста.

 from bs4 import BeautifulSoup import urllib import urllib2 headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36'} url = 'http://www.amazon.com/dp/0439136369' data = urllib.urlencode(headers) req = urllib2.Request(url,data) soup = BeautifulSoup(urllib2.urlopen(req).read()) for x in soup.find_all('table',id='productDetailsTable'): for tag in x.find_all('li'): tag.get_text() 

Из приведенного выше кода вы можете извлечь текст из таблицы, я не отформатировал его для печати или ввода в dict, как вы сказали, вам мало нужна помощь. так что я сделал в этом вышеприведенном коде. Мне нужно изменить user-agent поскольку amazon не разрешал python user-agent . используя find_all, я нахожу таблицу с id=productDetailsTable' . затем я перебираю его, чтобы найти все теги li поскольку вся информация хранится в этом теге.

  • Как очистить динамические веб-страницы от Python
  • Может ли телеграмм бот читать сообщения канала
  • Как сохранить изображение локально с помощью Python, URL-адрес которого я уже знаю?
  • BeautifulSoup - Получить текст в теге только в том случае, если определенная строка найдена
  • Селен Python пропускает необходимые элементы
  • Экран Скремблирование веб-страницы на Javascript в Python
  • Каков правильный синтаксис, чтобы следовать ссылке, используя beautifulsoup & запросы в приложении django?
  • Как написать скребковый контент в файл CSV?
  • Нажав ссылку, используя beautifulsoup в python
  • Как прокручивать теги и перенаправлять на получение более тегов?
  • Веб-скребка HTML-таблицы с использованием Python
  • Python - лучший язык программирования в мире.