Я пытаюсь получить некоторую информацию с этой страницы здесь: 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')
Вы можете включить очищающий TOS в свой ответ: https://www.facebook.com/apps/site_scraping_tos_terms.php – luschn