亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python selenium爬取微博數(shù)據(jù)代碼實(shí)例

 更新時(shí)間:2020年05月22日 10:51:25   作者:djl_djl  
這篇文章主要介紹了Python selenium爬取微博數(shù)據(jù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

爬取某人的微博數(shù)據(jù),把某人所有時(shí)間段的微博數(shù)據(jù)都爬下來(lái)。

具體思路:

創(chuàng)建driver-----get網(wǎng)頁(yè)----找到并提取信息-----保存csv----翻頁(yè)----get網(wǎng)頁(yè)(開(kāi)始循環(huán))----...----沒(méi)有“下一頁(yè)”就結(jié)束,

用了while True,沒(méi)用自我調(diào)用函數(shù)

嘟大海的微博:https://weibo.com/u/1623915527

辦公室小野的微博:https://weibo.com/bgsxy

代碼如下

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import csv
import os
import time
 
#只有這2個(gè)參數(shù)設(shè)置,想爬誰(shuí)的微博數(shù)據(jù)就在這里改地址和目標(biāo)csv名稱就行
weibo_url = 'https://weibo.com/bgsxy?profile_ftype=1&is_all=1#_0'
csv_name = 'bgsxy_allweibo.csv'
 
def start_chrome():
  print('開(kāi)始創(chuàng)建瀏覽器')
  driver = webdriver.Chrome(executable_path='C:/Users/lori/Desktop/python52project/chromedriver_win32/chromedriver.exe')
  driver.start_client()
  return driver
 
def get_web(url):   #獲取網(wǎng)頁(yè),并下拉到最底部
  print('開(kāi)始打開(kāi)指定網(wǎng)頁(yè)')
  driver.get(url)
  time.sleep(7)
  scoll_down()
  time.sleep(5)
 
def scoll_down():  # 滾輪下拉到最底部
  html_page = driver.find_element_by_tag_name('html')
  for i in range(7):
    print(i)
    html_page.send_keys(Keys.END)
    time.sleep(1)
 
def get_data():
  print('開(kāi)始查找并提取數(shù)據(jù)')
  card_sel = 'div.WB_cardwrap.WB_feed_type'
  time_sel = 'a.S_txt2[node-type="feed_list_item_date"]'
  source_sel = 'a.S_txt2[suda-uatrack="key=profile_feed&value=pubfrom_guest"]'
  content_sel = 'div.WB_text.W_f14'
  interact_sel = 'span.line.S_line1>span>em:nth-child(2)'
 
  cards = driver.find_elements_by_css_selector(card_sel)
  info_list = []
 
  for card in cards:
    time = card.find_elements_by_css_selector(time_sel)[0].text #雖然有可能在一個(gè)card中有2個(gè)time元素,我們?nèi)〉谝粋€(gè)就對(duì)
    if card.find_elements_by_css_selector(source_sel):
      source = card.find_elements_by_css_selector(source_sel)[0].text
    else:
      source = ''
    content = card.find_elements_by_css_selector(content_sel)[0].text
    link = card.find_elements_by_css_selector(time_sel)[0].get_attribute('href')
    trans = card.find_elements_by_css_selector(interact_sel)[1].text
    comment = card.find_elements_by_css_selector(interact_sel)[2].text
    like = card.find_elements_by_css_selector(interact_sel)[3].text
    info_list.append([time,source,content,link,trans,comment,like])
 
  return info_list
 
def save_csv(info_list,csv_name):
  csv_path = './' + csv_name
  print('開(kāi)始寫入csv文件')
  if os.path.exists(csv_path):
    with open(csv_path,'a',newline='',encoding='utf-8-sig') as f: #newline=''避免空行;encoding='utf-8-sig'比utf8牛,保存中文沒(méi)問(wèn)題
      writer = csv.writer(f)
      writer.writerows(info_list)
  else:
    with open(csv_path,'w+',newline='',encoding='utf-8-sig') as f:
      writer = csv.writer(f)
      writer.writerow(['發(fā)布時(shí)間','來(lái)源','內(nèi)容','鏈接','轉(zhuǎn)發(fā)數(shù)','評(píng)論數(shù)','點(diǎn)贊數(shù)'])
      writer.writerows(info_list)
  time.sleep(5)
 
def next_page_url():
  next_page_sel = 'a.page.next'
  next_page_ele = driver.find_elements_by_css_selector(next_page_sel)
  if next_page_ele:
    return next_page_ele[0].get_attribute('href')
  else:
    return None
 
 
driver = start_chrome()
input('請(qǐng)?jiān)赾hrome中登錄weibo.com')   # 暫停程序,手動(dòng)登錄weibo.com
 
while True:
  get_web(weibo_url)
  info_list = get_data()
  save_csv(info_list,csv_name)
  if next_page_url():
    weibo_url = next_page_url()
  else:
    print('爬取結(jié)束')
    break

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 樹表查找(二叉排序樹、平衡二叉樹)

    Python 樹表查找(二叉排序樹、平衡二叉樹)

    本文并不會(huì)深入講解樹數(shù)據(jù)結(jié)構(gòu)的基本的概念,僅是站在使用的角度說(shuō)清楚動(dòng)態(tài)查詢。閱讀此文之前,請(qǐng)預(yù)備一些樹的基礎(chǔ)知識(shí)。
    2023-01-01
  • 一文實(shí)現(xiàn)刪除numpy數(shù)組中的指定索引元素

    一文實(shí)現(xiàn)刪除numpy數(shù)組中的指定索引元素

    在Python中,Numpy是一個(gè)強(qiáng)大的數(shù)學(xué)庫(kù),用于處理大型多維數(shù)組和矩陣的數(shù)學(xué)運(yùn)算,數(shù)組是由相同類型的數(shù)據(jù)元素組成的集合,并且每個(gè)元素都可以通過(guò)索引進(jìn)行訪問(wèn),本文將給大家介紹如何刪除numpy數(shù)組中的指定索引元素,需要的朋友可以參考下
    2024-05-05
  • python導(dǎo)入時(shí)小括號(hào)大作用

    python導(dǎo)入時(shí)小括號(hào)大作用

    這篇文章主要介紹了python導(dǎo)入時(shí)小括號(hào)的大作用,非常的簡(jiǎn)單實(shí)用,希望這個(gè)小技巧能夠幫到大家
    2017-01-01
  • python中networkx函數(shù)的具體使用

    python中networkx函數(shù)的具體使用

    本文主要介紹了python中networkx函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python批量修改文件名案例匯總

    Python批量修改文件名案例匯總

    在文件管理和數(shù)據(jù)處理中,批量修改文件名是一項(xiàng)常見(jiàn)且重要的任務(wù),Python作為一種功能強(qiáng)大的編程語(yǔ)言,提供了豐富的庫(kù)和工具來(lái)簡(jiǎn)化這一過(guò)程,本文將結(jié)合實(shí)際案例,詳細(xì)介紹如何通過(guò)Python批量修改文件名,需要的朋友可以參考下
    2024-08-08
  • Python中二維列表如何獲取子區(qū)域元素的組成

    Python中二維列表如何獲取子區(qū)域元素的組成

    這篇文章主要給大家介紹了Python中二維列表是如何獲取子區(qū)域元素的組成,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-01-01
  • Python安裝Graphviz?超詳細(xì)圖文教程

    Python安裝Graphviz?超詳細(xì)圖文教程

    這篇文章主要介紹了Python安裝Graphviz?詳細(xì)教程,在Python安裝Graphviz畫圖器,首先要明確他是一個(gè)獨(dú)立的軟件,如果大家用pip的方法裝了graphviz可以先卸載,本文通過(guò)圖文并茂的形式詳細(xì)講解,需要的朋友參考下吧
    2023-02-02
  • python實(shí)現(xiàn)文件的分割與合并

    python實(shí)現(xiàn)文件的分割與合并

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)文件的分割與合并,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Python 調(diào)用PIL庫(kù)失敗的解決方法

    Python 調(diào)用PIL庫(kù)失敗的解決方法

    今天小編就為大家分享一篇Python 調(diào)用PIL庫(kù)失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python openpyxl庫(kù)處理Excel文件高級(jí)應(yīng)用技巧實(shí)例

    Python openpyxl庫(kù)處理Excel文件高級(jí)應(yīng)用技巧實(shí)例

    openpyxl是一個(gè)用于處理Excel文件的Python庫(kù),它提供了豐富的功能,使得用戶能夠輕松地讀取、寫入和操作Excel文件,而不需要依賴于Microsoft Excel軟件,作為一個(gè)開(kāi)源項(xiàng)目,openpyxl在Python生態(tài)系統(tǒng)中得到了廣泛的應(yīng)用,成為處理Excel數(shù)據(jù)的首選工具之一
    2024-01-01

最新評(píng)論