Войти

Показать полную графическую версию : Парсер ютуба сработал, но ничего не записалось в файл: data.txt


fansat
29-03-2019, 08:51
Парсер ютуба сработал, но ничего не записалось в файл: data.txt
Не знаю как поставить селекоры --- изменился код страницы youtube

Это сам скрипт:

# coding: utf8
# == pars_playlist.py
# == select short information from Yotube playlist --
from urllib import urlopen
from BeautifulSoup import BeautifulSoup

print "pars_playlist working..."

# == get first linkof playlist ==
url = raw_input('input link:')
url = "https://www.youtube.com/playlist?list=PLku9se_HAVOrs3p_jJzZAbV3BEODrhS3j"

fh = open('data.txt', 'w')

cur_num = 1 # index of reading page
try:
while True:
# -- get curent page --
print cur_num
print url
content = urlopen( url )
page = content.read()

# -- cut head
soup = BeautifulSoup(page)
body = soup.find('body')

# get current title
span = body.find(id="video-title")
title = span.getText()
print title

# get list of all links
ol = body.find(id="items")
lis = ol.findAll('li')

# soup for current page
for idx, li in enumerate(lis): # seek for picture
li_title = li["data-video-title"]
if li_title == title: break
video_id = li["data-video-id"]

# get picture information
img = li.find('img')
img_src = img['src']
pos = img_src.find('?')
if pos > 0: img_src = img_src[:pos]

# get description of page
descr = body.find(id="eow-description")
descr_text = descr.getText()

# save information
fh.write(title.encode('utf8') + '\n')
fh.write(video_id.encode('utf8') + '\n')
fh.write(img_src.encode('utf8') + '\n')
fh.write(descr_text.encode('utf8') + '\n')
fh.write('\n')

if idx >=len(lis) -1: break

# get next url
idx += 1
li = lis[ idx ]
anc = li.find('a')
href = anc['href']
url = "https://www.youtube.com" + href

cur_num = cur_num + 1

# == 05 end of work ==
except:
print "exception: " + str(cur_num)
pass
finally:
fh.close()
print "ok"

Iska
29-03-2019, 16:33
Не знаю как поставить селекоры --- изменился код страницы youtube »
Открываете Инспектор DOM в своём любимом браузере — и копаете, копаете, копаете. Или Вы предлагаете, чтобы это сделал кто-то за Вас, коллега?

fansat
29-03-2019, 16:47
Спасибо Iska.
----------------
Открываете Инспектор DOM
В Google Chrome такого нет.
Подскажите.

shisik
29-03-2019, 18:09
В Google Chrome такого нет. »

Есть

fansat
29-03-2019, 18:51
Спасибо.
Я его использовал - правая кн. Код элемента




© OSzone.net 2001-2012