![](/img/trans.png)
[英]No such file or directory error when scraping Tweets using Tweepy in Python
[英]Issue with scraping tweets using python
我正在嘗試在特定時間范圍內從一個網頁抓取推文。
為此,我使用此鏈接,該鏈接僅在我指定的時間范圍內搜索:
https://twitter.com/search?f=tweets&q=subwaydstats%20since%3A2016-08-22%20until%3A2018-08-22
這是我的代碼:
import pandas as pd
import datetime as dt
import urllib.request
from bs4 import BeautifulSoup
url = 'https://twitter.com/search?f=tweets&q=subwaydstats%20since%3A2016-08-22%20until%3A2018-08-22'
thepage = urllib.request.urlopen(url)
soup = BeautifulSoup(driver.page_source,"html.parser")
i = 1
for tweet in soup.find_all('div', {'class': 'js-tweet-text-container'}):
print(tweet.find('p', {'class': 'TweetTextSize'}).text.encode('UTF-8'))
print(i)
i += 1
當我從Metrostatstat用戶的實際Twitter頁面中抓取時,以上代碼有效。
因此,即使html看起來對我來說一樣,我也不明白為什么它不適用於搜索頁面。
我是一個初學者,所以很抱歉這是一個愚蠢的問題。 謝謝!
有一個Twitter API-Twitter搜索API文檔: https : //developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets ,其中使用了非官方的Python包裝器: https:/ /github.com/bear/python-twitter使得獲取推文非常容易。
但是,如果要抓取HTML,則要困難得多。 我在做類似的事情-刮一個有角度的應用程序,但是,您在屏幕上看到的實際HTML實際上是通過“前端javascript”呈現的。 請求和urllib,僅獲取基本HTML,但不運行javascript。
您可以使用selenium ,它基本上是一種瀏覽器,可以自動執行任務。 由於它的行為就像瀏覽器一樣,因此它實際上運行該前端javascript,這意味着您將能夠抓取該網頁。
這里有一篇很棒的文章,解釋了刮取Twitter的不同方法https://medium.com/@dawran6/twitter-scraper-tutorial-with-python-requests-beautifulsoup-and-selenium-part-2-b38d849b07fe
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.