2015-04-27 6 views
0

Я пытаюсь получить некоторую информацию с этой страницы здесь: https://www.facebook.com/groups/574916095895510/?fref=tsЗачистка название группы из Facebook

При нажатии кнопки «Показать все», отображается список пользователей. Я пытаюсь получить следующий текст: «Члены UCLA класса 2018 Официальная группа».

Однако, я получаю следующее сообщение об ошибке при попытке напечатать текст с XPath:

Traceback (most recent call last): 
    File "scraper.py", line 35, in <module> 
     print title.text() 
AttributeError: 'NoneType' object has no attribute 'text' 

Когда я дамп сессии, как изображение, название видно, так что я знаю, что текст доступный для очистки.

Вот мой полный код:

import time 
import dryscrape 
import json 
import ast 

username = 'USERNAME' 
password = 'PASSWORD' 

# set up a web scraping session 
sess = dryscrape.Session(base_url = 'https://www.facebook.com/') 

# visit homepage and log in 
print "Logging in..." 
sess.visit('/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fgroups%2F574916095895510%2F%3Ffref%3Dts') 

# Set username and password 
username_field = sess.at_css('#email') 
password_field = sess.at_css('#pass') 
username_field.set(username) 
password_field.set(password) 

# Submit the form 
username_field.form().submit() 

# Wait 
time.sleep(3) 

print "Viewing all members..." 
see_all_button = sess.at_xpath('//*[@id="pagelet_group_profile_members"]/div/div/div/div[1]/div/a') 
see_all_button.click() 

time.sleep(3) 

title = sess.at_xpath('//*[@id="u_z_0"]/div/div[1]/h3') 
print title.text() 

sess.render('fb.png') 

ответ

1

Вы не должны ломом данные из Facebook. Facebook предоставляет все ваши данные, используя их API.

Здесь вы можете найти любую информацию о группе в своей документации. Это намного чище, чем очистка, и будет поддерживаться, если вы хотите использовать его в будущем. :)

https://developers.facebook.com/docs/graph-api/reference/v2.3/group

Я сделал много выскабливание, и это не кажется хорошим прецедентом для соскабливания - использовать API!

+2

Вы можете включить очищающий TOS в свой ответ: https://www.facebook.com/apps/site_scraping_tos_terms.php – luschn

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