1. 程式人生 > >利用Twitter開放者平臺爬取Twitter資料

利用Twitter開放者平臺爬取Twitter資料

前言

Twitter對外提供了api介面且Twitter官方提供了Python第三方庫Tweepy,因此我直接參考Tweepy文件寫程式碼。現在Twitter國內是訪問不了的,我配置了Shadowsocks代理,ss預設是用socks5協議,對於Terminal的get,wget等走Http協議的地方是無能為力的,所以需要轉換成Http代理,從而加強通用性,這裡使用的轉換方法是基於Polipo(一種快取web代理)。(注:windows版的Shadowsocks是支援http的,不用轉換,可以直接跑程式)。

建立APP

進入https://apps.twitter.com/,建立自己的app。只有有了app才可以訪問twitter的api並抓取資料。只需建立最簡單的app即可,各種資訊隨意填寫,並不需要進一步的認證,我們要的只是app的Consumer Key (API Key), Consumer Secret (API Secret), Access Token 和 Access Token Secret。

安裝Tweepy和Shadowsocks

apt-get install python3-pip
pip3 install tweepy
pip3 install shadowsocks

注:Shadowsocks的正常使用需要伺服器端(所有的翻牆軟體都是通過伺服器端),而搭建伺服器端,你就需要有自己的vps,現在普遍使用的搭建伺服器端的vps主要包括3種,一個是Linode,一個是DigitalOcean,一個是BandwagonHOST(搬瓦工),這是從價格,效能等方面做出的推薦。搭建Shadowsocks伺服器端步驟也很簡單,在vps上安裝Shadowsocks再配置一下就可以了。這裡我已經有了ss賬號和密碼這些引數,所以我只要使用ss的客戶端功能。沒有ss賬號的可以到網上購買或者共享。

配置Shadowsocks

我已經有了ss賬號,我只需要使用ss的客戶端功能。主要用到的命令即sslocalsslocal –help檢視幫助)。
啟動ss客戶端可以採用sslocal+各項引數啟動,這裡方便起見我使用配置檔案啟動。
sudo vim /etc/shadowsocks.json //自己建立一個配置檔案
配置檔案的內容大致如下(這裡伺服器指的是作為ss服務端的機子):

{
    "server":"伺服器ip",
    "server_port":伺服器埠,
    "local_address": "127.0.0.1",
    "local_port":1080
, "password":"密碼", "timeout":600, "method":"aes-256-cfb" }

啟動ss客戶端

sudo sslocal -c /etc/shadowsocks.json

轉換為http代理

這裡轉換方法是基於Polipo( Polipo 已經停止維護,建議使用 squid, privoxy 等其它方案。privoxy等安裝配置過程類似)。
安裝Polipo:

sudo apt-get install polipo

修改配置檔案:sudo vim /etc/polipo/config
修改為:

# This file only needs to list configuration variables that deviate
# from the default values.  See /usr/share/doc/polipo/examples/config.sample
# and "polipo -v" for variables you can tweak and further information.

logSyslog = false
logFile = /var/log/polipo/polipo.log
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
chunkHighMark = 50331648
objectHighMark = 16384
serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32
proxyAddress = "0.0.0.0"
proxyPort = 8520

注:其中8520是代理埠號,可以自行修改。
重啟Polipo:service polipo restart
驗證代理是否正常工作(在終端視窗依次輸入):

export http_proxy="http://127.0.0.1:8520/" 
curl www.google.com

如果抓取到了Google的網頁內容,說明啟動且配置正確。

簡單測試例子

import tweepy  

#填寫twitter提供的開發Key和secret  
consumer_key = ' '  
consumer_secret = ' '  
access_token = ' '  
access_token_secret = ' '  

#提交你的Key和secret  
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)  
auth.set_access_token(access_token, access_token_secret)  

#獲取類似於內容控制代碼的東西  
#api = tweepy.API(auth)
#我這裡代理地址是127.0.0.1:8520
api = tweepy.API(auth,proxy="127.0.0.1:8520")  

#列印使用者主頁上的時間軸裡的內容  
public_tweets = api.user_timeline('realDonaldTrump')  

for tweet in public_tweets:  
    print(tweet.text)

相關推薦

利用Twitter開放平臺Twitter資料

前言 Twitter對外提供了api介面且Twitter官方提供了Python第三方庫Tweepy,因此我直接參考Tweepy文件寫程式碼。現在Twitter國內是訪問不了的,我配置了Shadowsocks代理,ss預設是用socks5協議,對於Termina

資料視覺化 三步走(一):資料採集與儲存,利用python爬蟲框架scrapy網路資料並存儲

前言     最近在研究python爬蟲,突然想寫部落格了,那就寫點東西吧。給自己定個小目標,做一個完整的簡單的資料視覺化的小專案,把整個相關技術鏈串聯起來,目的就是為了能夠對這塊有個系統的認識,具體設計思路如下: 1. 利用python爬蟲框架scr

根據地理位置和關鍵詞twitter資料並生成詞雲

根據地理位置和關鍵詞爬取twitter資料存入MongoDB並生成詞雲 轉載註明出處 tweepy獲取資料 生成詞雲 tweepy獲取資料 1. 建立model model.py class twitter_post(Document):

根據使用者IDTwitter資料

我需要爬取的使用者ID存放在一個.csv檔案下,然後從官網註冊到一個APP,並獲得你的key和secret,寫入下邊的程式碼,就可以爬取tweets了。 每個ID會輸出相應的tweet並且s會放在一個.csv檔案裡,而這個.csv檔案就在你執行這段程式碼的資料夾下。 #!/

twitter的思路

第一次訪問獲得max-position,然後模擬構造ajax請求,陸續獲得後文內容 直接訪問頁面請求資料時候,第一個max-position資料無法獲得,通過在follwing&followers&tweets&replies等之間切換時,發現是通過ajax請求獲得的資料,可以獲得第

Python爬蟲之利用正則表達式內涵吧

file res start cnblogs all save nts quest ide 首先,我們來看一下,爬蟲前基本的知識點概括 一. match()方法: 這個方法會從字符串的開頭去匹配(也可以指定開始的位置),如果在開始沒有找到,立即返回None,匹配到一個結果

如何利用Python網絡爬蟲微信朋友圈動態--附代碼(下)

CA external 令行 sta 項目 程序 str 輸入 tar 前天給大家分享了如何利用Python網絡爬蟲爬取微信朋友圈數據的上篇(理論篇),今天給大家分享一下代碼實現(實戰篇),接著上篇往下繼續深入。 一、代碼實現 1、修改Scrapy項目中的ite

利用高德API + Python鏈家網租房資訊 01

看了實驗樓的專案發現五八同城爬取還是有點難度所以轉戰鏈家 實驗程式碼如下 from bs4 import BeautifulSoup from urllib.request import urlopen import csv url = 'https://gz.lia

利用appium和Android模擬器微信朋友圈(解決每次重啟登入)

特別注意: 微信具有一定的反爬能力,在測試時發現,每次爬取任務時, 對應特定節點的ID和XPath都會發生變化,保險起見,每次重新連線手機,都要對節點ID和Xpath作更新。 同時設定引數 'noReset': True, # 啟動後結束後不清空應用資料,用例執行完後會預設重

利用linux curl網站資料

看到一個看球網站的以下截圖紅色框資料,想爬取下來,通常爬取網站資料一般都會從java或者python爬取,但本人這兩個都不會,只會shell指令碼,於是硬著頭皮試一下用shell爬取,方法很笨重,但旨在結果嘛,呵呵。 2.首先利用curl工具後者wget工具把整個網站資料爬取下來 &nbs

不得姐網站,利用多執行緒來

利用到的庫 time, requests, lxml, queue, threading 功能 爬取不得姐網站中前二十頁的段子資料 import time import requests from lxml import etree from queue

手把手教你利用前端字型檔案(.ttf)混淆數字來阻止爬蟲網站資料

先上一張效果圖 假如 正確的數字是321456 這時候使用者看到的就是對的 而爬蟲在抓取資料的時候 抓到得是123456 混淆了數字 怎麼實現呢? 工具: 1、FontCreator (中文漢化破解版) 當然英語好或者土豪的可以無視 2、做好的字型圖片 步

利用python爬蟲技術動態地理空間資料雲中的元資料(selenium)

python爬取地理空間資料雲selenium動態點選 爬取的網址秀一下: 爬取的資訊是什麼呢? 這個資訊的爬取涉及到右邊按鈕的點選,這屬於動態爬取的範疇,需要用到selenium 好了,那麼開始寫程式碼吧 首先匯入selenium from seleni

利用正則表示式處理的今日頭條內容資料(Python爬蟲資料清洗)

本次要處理的是抓取的頭條內容,內容如下: content = '''content: '<div><blockquote><p><strong>想要更多科技類資訊,歡迎關注公眾號“

利用scrapy框架遞迴菜譜網站

介紹: 最近學習完scrapy框架後,對整個執行過程有了進一步的瞭解熟悉。於是想著利用該框架對食譜網站上的美食圖片進行抓取,並且分別按照各自的命名進行儲存。 1、網頁分析 爬取的網站是www.xinshipu.com,在爬取的過程中我發現使用xpath對網頁進行解析時總是找不到對應的標籤

利用Python房產資料!並在地圖上顯示!Python乃蒂花之秀!

    JiwuspiderSpider.py # -*- coding: utf-8 -*- from scrapy import Spider,Request import re from jiwu.items import JiwuItem clas

利用requests+分析ajax+mogodb並存儲攜程酒店資料

以前就利用selenium爬取協程酒店資訊,但是我們知道利用selenium抓取資訊有個缺點就是效率不高,於是這幾天重新開啟網頁,從基本的網頁和原始碼中尋找一些值得利用的資料。 話不多說,我們直接說抓取攜程酒店資料的思路,宣告:本節只做爬蟲交流技術所用,不得用於商業用途,如有侵犯他人權利,聯

實戰 利用Xpath網頁資料

#coding=utf-8 #step1 匯入模組 import re import requests from lxml import etree #抓取網頁原始碼 url = 'http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb4931

利用requests和正則貓眼電影top100榜單

環境:win10, anaconda3(python3.5) 用python的requests庫和正則將貓眼電影top100榜單資訊抓取下來,儲存資料並做了點簡單的分析。 (貓眼電影top100榜單網頁的原始碼可能發生了改變,程式里正則那邊可能不適用了,需要修改。) 下面

xml資料之R

生物資訊很多時候要爬資料。最近也看了一些這些方面的。 url<-"要爬取的網址" url.html<-htmlParse(url,encoding="UTF-8") 如果要獲得部分資訊,則使用XPath方法。 xpath<-"//*[@id='填寫目標id']/span[@id='細