2015-07-28 3 views
-6

Мой код:Twitter питон выскабливание

from lxml import html 
import requests 
# you can use any website 
page = requests.get('https://twitter.com/MarketWatch/lists/marketwatch-staff/members') 
tree = html.fromstring(page.text) 

#This will create a list of staff 
staff=tree.xpath('//li[contains(@id,"user")]/div/div[2]/div/div/a/span/text()') 

print 'Staff: ', staff 

Когда я использую выше код, я получаю только 20 членов в списке, но есть 89 членов.

Мой выход:

InsecurePlatformWarning 
Staff: ['@Craig_Tolliver', '@MarketsTicker', '@EnergyTicker', '@MWHealthBlog', '@KitchenNews', '@SueChangMW', '@MWMozee', '@jjelter', '@MKTWRetirement', '@ClaudiaAssisMW 
', '@TomiKilgore', '@EllieIsma', '@capitolreport', '@elizobrien', '@SilviaAscarelli', '@wmwitkowski', '@MKTWeconomics', '@MKTWGraphics', '@JohnWordock', '@SAFmedia'] 

мне нужен весь список 89 членов.

+0

Почему вы хотите очистить эту информацию, а не использовать [Twitter API] (https://dev.twitter.com/rest/reference/get/followers/ids)? – Odi

ответ

4

Это связано с тем, что вы очищаете его вручную, на странице показаны первые 20 членов и загружается (с помощью вызова AJAX) больше членов динамически, если вы прокрутите вниз. Такое поведение не происходит, когда вы выполняете HTTP-запрос в python.

Как Арканоз и Оди уже предложил, используйте Twitter API, чтобы делать такие запросы.

+0

Отлично, но просто хочу просто отказаться, Как получить список всех членов от AJAX? Является ли какой-либо код для AJAX? Я в порядке с BeautifulSoup OR scarpy @DJanssens Можете ли вы объяснить, как использовать API для моего участия. Pls дает код или объясняет кратко – magic

1

Twitter имеет nice API; Я предлагаю вам использовать его вместо того, чтобы пытаться отказаться от веб-сайта (который, скорее всего, со временем изменится).

+0

https://github.com/tweepy/tweepy – heinst