2015-06-28 5 views
0

Я пытаюсь создать скрипт python, который читает страницу crunchyroll и дает мне ssid субтитров.Поиск определенного слова в BeautifulSoup python

Например: - http://www.crunchyroll.com/i-cant-understand-what-my-husband-is-saying/episode-1-wriggling-memories-678035

Перейти к исходному коду и искать ssid, я хочу, чтобы извлечь номера после SSID этого элемента

<a href="/i-cant-understand-what-my-husband-is-saying/episode-1-wriggling-memories-678035?ssid=154757" title="English (US)">English (US)</a> 

Я хочу, чтобы извлечь «154757», но Я не могу показаться, чтобы получить мой сценарий работает

Это мой текущий сценарий:

import feedparser 
import re 
import urllib2 
from urllib2 import urlopen 
from bs4 import BeautifulSoup 


feed = feedparser.parse('http://www.crunchyroll.com/rss/anime') 
url1 = feed['entries'][0]['link'] 
soup = BeautifulSoup(urlopen(url1), 'html.parser') 

Как я могу изменить свой код для поиска и извлечения этого конкретного номера?

+4

Вы задали несколько вопросов здесь и не принимаете никаких ответов. Другие пользователи будут более склонны помогать, если вы сначала примете ответы на свои предыдущие вопросы. – serk

+0

@serk .. done ... Я не мог найти, как их принять ... Вместо этого я их отложил: | – Xonshiz

+0

Добро пожаловать в stackoverflow! Я рекомендую вам воспользоваться [tour] (https://stackoverflow.com/tour). – serk

ответ

1

Это должно помочь вам начать извлечение ssid для каждой записи. Обратите внимание, что некоторые из этих ссылок не имеют ssid, поэтому вам придется учитывать это с некоторой ошибкой. Нет необходимости в re или здесь urllib2.

import feedparser 
import requests 
from bs4 import BeautifulSoup 


d = feedparser.parse('http://www.crunchyroll.com/rss/anime') 
for url in d.entries: 
    #print url.link 
    r = requests.get(url.link) 
    soup = BeautifulSoup(r.text) 
    #print soup 
    subtitles = soup.find_all('span',{'class':'showmedia-subtitle-text'}) 
    for ssid in subtitles: 
     x = ssid.findAll('a') 
     for a in x: 
      print a['href'] 

Выход:

--snip-- 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=166035 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=165817 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=165819 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=166783 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=165839 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=165989 
/i-cant-understand-what-my-husband-is-saying/episode-12-baby-skip-beat-678057?ssid=166051 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=166011 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=165995 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=165997 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=166033 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=165825 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=166013 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=166009 
/urawa-no-usagi-chan/episode-11-if-i-retort-i-lose-678873?ssid=166003 
/etotama/episode-11-catrat-shuffle-678659?ssid=166007 
/etotama/episode-11-catrat-shuffle-678659?ssid=165969 
/etotama/episode-11-catrat-shuffle-678659?ssid=166489 
/etotama/episode-11-catrat-shuffle-678659?ssid=166023 
/etotama/episode-11-catrat-shuffle-678659?ssid=166015 
/etotama/episode-11-catrat-shuffle-678659?ssid=166049 
/etotama/episode-11-catrat-shuffle-678659?ssid=165993 
/etotama/episode-11-catrat-shuffle-678659?ssid=165981 
--snip-- 

Есть больше, но я оставил их для краткости. Из этих результатов вы сможете легко разобрать ssid с некоторыми нарезками, так как похоже, что ssid все 6 цифр. Делать что-то вроде:

print a['href'][-6:] 

будет делать трюк, и вы получите толькоssid.

+0

получение: - NameError: имя «запросы» не определено, строка r = request.get (url.link) является источником этой ошибки .... – Xonshiz

+0

вам нужно установить модуль 'запросов'. – serk

+0

ладно .. так, это начало давать мне заголовки из rss-канала ... просто нужно выяснить о ssids .. спасибо, чтобы вы меня начали ... попробуем ответить через несколько часов .. – Xonshiz

Смежные вопросы