1. 程式人生 > >爬蟲學習筆記--爬B站評論

爬蟲學習筆記--爬B站評論

由於鬆愛協會的小夥伴邀請,我研究了一下爬取b站上協會的一些精彩評論

由於評論是動態的,所以要用到 selenium 之前的博文裡已經有關於selenium的安裝注意事項

還要用到Firefox的firebug  去獲取xpath資訊 

target = app.find_element_by_xpath(".//*[@id='recommend_report']/div[1]/span")
app.execute_script("arguments[0].scrollIntoView();", target)#定位到特定的元素
time.sleep(3)

這裡注意一下 由於有些資訊要 下拉滾動條才可以 獲取到 那麼這裡有一個下拉滾動條 定位到某一元素的方法

貼上程式碼 

#coding=utf-8
from selenium import webdriver
import sys
import time
from selenium.webdriver.common.keys import Keys
reload(sys)
sys.setdefaultencoding("utf-8")

# fp = webdriver.PhantomJS()
# fp.set_preference("permissions.default.stylesheet",2)
# fp.set_preference("permissions.default.image",2)
app = webdriver.Firefox()
app.get("https://www.bilibili.com/video/av3553625/?from=search&seid=10292605247919873793")

target = app.find_element_by_xpath(".//*[@id='recommend_report']/div[1]/span")
app.execute_script("arguments[0].scrollIntoView();", target)#定位到特定的元素
time.sleep(3)

target2 = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div[4]/span/a");
app.execute_script("arguments[0].scrollIntoView();", target2)
time.sleep(3)
target2.click()
# js="var q=document.documentElement.scrollTop=100000"
# app.execute_script(js)
# time.sleep(3)

for i in range(20):
    if(i==7):
        continue
    name = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div["+str(i+1)+"]/div[2]/div[1]/a[1]")
    test = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div["+str(i+1)+"]/div[2]/p")
    if (i != 13 and i != 17):
        pinglun1 = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div["+str(i+1)+"]/div[2]/div[3]/div[1]/div/div[1]/span")
    if (i != 13 and i != 17):
        pinglun2 = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div["+str(i+1)+"]/div[2]/div[3]/div[2]/div/div[1]/span")
    if(i !=12 and i !=13 and i != 17):
        pinglun3 = app.find_element_by_xpath(".//*[@id='bbComment']/div[1]/div[4]/div["+str(i+1)+"]/div[2]/div[3]/div[3]/div/div[1]/span")
    print ("作者:")
    print (name.text.strip())
    print ("內容:")
    print test.text.strip()
    print ("後續:")
    if (i != 13 and i != 17):
        print pinglun1.text.strip()
    if (i != 13 and i != 17):
        print pinglun2.text.strip()
    if (i != 12 and i != 13 and i != 17):
        print pinglun3.text.strip()
    print ("\n")
    time.sleep(3)
#
# tests = app.find_elements_by_css_selector("p.text")
# for i in range(len(tests)):
#     test = tests[i].text.strip()
#     print test
app.quit()
這裡只抓取了一頁的評論 還可以再完善抓更多頁面

相關推薦

爬蟲學習筆記--B評論

由於鬆愛協會的小夥伴邀請,我研究了一下爬取b站上協會的一些精彩評論 由於評論是動態的,所以要用到 selenium 之前的博文裡已經有關於selenium的安裝注意事項 還要用到Firefox的firebug  去獲取xpath資訊  target = app.fi

靜覓爬蟲學習筆記8-取貓眼電影

nal rip score item 之前 req exceptio pool html   不知道是不是我學習太晚的原因,貓眼電影這網站我用requests進行爬取源碼直接返回給我一個您的訪問被禁止。作為萌新的我登時就傻了,還好認真聽了之前的課,直接換selenium抓了

Python爬蟲學習筆記之模擬登陸並去GitHub

過程 eight res 開發者工具 @value clas 之前 自己 8.0 (1)環境準備: 請確保已經安裝了requests和lxml庫 (2)分析登陸過程: 首先要分析登陸的過程,需要探究後臺的登陸請求是怎樣發送的,登陸之後又有怎樣的

Python爬蟲學習筆記(七)——智高考數據

pid items bubuko strong eai res har href name 介紹 智高考是一個高考誌願網站,也是基於Ajax的。高中的時候我在wyz大神的幫忙下,嘗試過爬取信息來為填誌願做準備。但是當時沒有系統學習過爬蟲,幾乎都是靠大神帶飛,因此今天再次嘗試

乾貨(附原始碼) | 取一萬條b評論,分析9.7分的新番憑啥這麼火?

7月番《工作細胞》最終話在十一前放出。這部動漫在b站上評分高達9.7。除了口碑之外,熱度也居高不下,更值得關注的是連很多平時不關注動漫的小夥伴也加入了追番大軍。這次我們的目標是爬取b站上的所有短評進行分析,用資料說明為什麼這部動漫會如此受歡迎。 01 工作細胞 《工作細胞》

python爬蟲學習筆記三:圖片

圖片爬取的程式碼 r.content 檔案的二進位制格式 Python引入了with語句來自動幫我們呼叫close()方法: open(path, ‘-模式-‘,encoding=’UTF-8’)  w:以寫方式開啟, a:以追加模式開啟 (從 EOF 開始, 必要時建

Python資料爬蟲學習筆記(13)取微信文章資料

一、需求:在微信搜尋網站中,通過設定搜尋關鍵詞以及搜尋頁面數,爬取出所有符合條件的微信文章: 二、搜尋頁URL分析階段: 1、在搜尋框中輸入任意關鍵詞,在出現的搜尋結果頁面點選下一頁,將每一頁的URL複製下來進行觀察: 2、注意到頁碼由page=X決定,搜尋關鍵

Python資料爬蟲學習筆記(21)取京東商品JSON資訊並解析

一、需求:有一個通過抓包得到的京東商品的JSON連結,解析該JSON內容,並提取出特定id的商品價格p,json內容如下: jQuery923933([{"op":"7599.00","m":"9999.00","id":"J_5089253","p":"7099.00"}

【Python3 爬蟲學習筆記】動態渲染頁面取 2

動作鏈 在互動操作中,一些互動動作都是針對某個節點執行的。比如,對於輸入框,我們就呼叫它的輸入文字和清空文字方法;對於按鈕,就呼叫它的點選方法。其實,還有另外一些操作,它們沒有特定的執行物件,比如滑鼠拖曳、鍵盤按鍵等,這些動作用另一種方式來執行,那就是動作鏈。

【Python3 爬蟲學習筆記】動態渲染頁面取 4 —— 使用Selenium取淘寶商品

並不是所有頁面都可以通過分析Ajax來完成抓取。比如,淘寶,它的整個頁面資料確實也是通過Ajax獲取的,但是這些Ajax介面引數比較複雜,可能會包含加密祕鑰等,所以如果想自己構造Ajax引數,還是比較困難的。對於這種頁面,最方便快捷的抓取方法就是通過Seleni

b評論

lse max round temp reply ajax ons ksum {} var userData = {}; var startPage = 0; var endPage = 0; var startTime = ""; var endTime = ""; va

python爬蟲學習筆記分析Ajax取果殼網文章

有時在使用requests抓取頁面會遇到得到的結果與在瀏覽器 中看到的結果不一樣,在瀏覽器檢查元素中可以看到的正常的顯示的網頁資料,但是requests請求得到的結果卻沒有。這是因為requests請求得到的時原始的html文件,而瀏覽器中的介面確實經過JavaScript處理資料生成的結果

【Python3 爬蟲學習筆記】動態渲染頁面取 3 —— Selenium的使用 3

切換Frame 網頁中有一種節點叫作iframe,也就是子Frame,相當於頁面的子頁面,它的結構和外部頁面的結構完全一致。Selenium開啟頁面後,它預設是在父級Frame裡面操作,而此時如果頁面中海油子Frame,它是不能獲取到子Frame裡面的額節點的。

python爬蟲學習筆記(一)—— 取騰訊視訊影評

       前段時間我忽然想起來,以前本科的時候總有一些公眾號,能夠為我們提供成績查詢、課表查詢等服務。我就一直好奇它是怎麼做到的,經過一番學習,原來是運用了爬蟲的原理,自動登陸教務系統爬取的成績等內容。我覺得挺好玩的,於是自己也琢磨了一段時間,今天呢,我為大家分享一個爬蟲

Python資料爬蟲學習筆記(11)取千圖網圖片資料

  需求:在千圖網http://www.58pic.com中的某一板塊中,將一定頁數的高清圖片素材爬取到一個指定的資料夾中。   分析:以數碼電器板塊為例   1.檢視該板塊的每一頁的URL: 注意到第一頁是“0-1.html”,第二頁是“0-2.html”,由

【Python 3 爬蟲學習筆記】使用Python3 取貓眼《西虹市首富》

轉自微信公眾號《資料森麟》 直接上程式碼: # 呼叫相關包 import json import random import requests import time import pandas as pd import os from pyecharts im

爬蟲學習筆記--用selenium 資料到Mysql

# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys import MySQLdb; import sys import t

神箭手爬蟲學習筆記(二)

暫存 自動 表達 eve doc 常用 學習 數據 .sh 一,可以使用神劍手已經做好的爬蟲市場直接跑,不需要自己定義爬取規則 二,爬蟲市場裏沒有的網站,需要自己去定義規則來爬數據。 三,爬取的數據可以先存放在神劍手,也可以放到七牛暫存。(提醒下,網站需要數據備份如果數量不

python3爬蟲學習筆記

apple 搜索 logs exce header 索引 port exception 不能 Robot.txt Robots協議(也稱為爬蟲協議、機器人協議等)的全稱是“網絡爬蟲排除標準”(Robots Exclusion Protocol),網站通過Robots協議告訴

Scrapy爬蟲學習筆記 - windows下搭建開發環境1

ima 搭建開發環境 環境 navicat win pyc arm bsp mysql 一、pycharm的安裝和簡單使用 二、mysql和navicat的安裝和使用 三、wi