91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 61KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-07-10
  • 語言: 其他
  • 標簽:

資源簡介

利用selenium+PlantomJS登錄+爬取感興趣的用戶的所有信息 包括昵稱,認證,粉絲,關注,所有微博以及每條微博的轉發,評論數量等 理論上來講再加一個鏈接爬蟲可以爬取新浪微博的所有數據 但是由于用的是無殼瀏覽器導致登錄和加載頁面速度比較慢 所以實際上基本不可能能實現爬取 代碼寫完調通就沒有管過了,也沒有優化過,不過基本的功能都可以實現

資源截圖

代碼片段和文件信息

from?selenium?import?webdriver
from?selenium.webdriver.common.keys?import?Keys
from?selenium.webdriver.support.ui?import?WebDriverWait
from?selenium.webdriver.support?import?expected_conditions
from?selenium.webdriver.common.by?import?By
import?bs4

import?time

def?login(urlusernamepassword):
????‘‘‘
????用于登錄微博
????:param?url:微博的登錄接口?
????:param?username:?用戶名
????:param?password:?密碼
????:return:?cookie
????‘‘‘
????#browser?=?webdriver.Chrome()?????????????????????????????????????????????????????#用谷歌瀏覽器實驗
????browser?=?webdriver.PhantomJS(“E:/phantomjs-2.1.1-windows/bin/phantomjs.exe“)??????#用PhantomJS
????browser.maximize_window()??????????????????????#設置窗體為最大,如果沒有這一行,表單可能無法操作
????browser.get(url)???????????????????????????????#打開登陸用的網頁

????print(“開始登陸“)
????username_ele?=?browser.find_element_by_id(“loginname“)????#找到用于輸入用戶名的表格
????username_ele.clear()??????????????????????????????????????#清空表格
????username_ele.send_keys(username)??????????????????????????#輸入賬戶
????password_ele?=?browser.find_element_by_name(“password“)???#找到用于輸入密碼的表格
????password_ele.clear()??????????????????????????????????????#清空表格
????password_ele.send_keys(password)??????????????????????????#輸入密碼
????submit?=?browser.find_element_by_xpath(‘//*[@id=“pl_login_form“]/div/div[3]/div[6]/a/span‘)???#找到用于提交表單的類型為submit的input
????submit.click()??????????#點擊
????time.sleep(5)
????WebDriverWait(browser?10).until(expected_conditions.presence_of_element_located((By.CLASS_NAME?‘WB_miniblog‘)))??#等待登陸頁面加載完成
????if?is_ele_exist(browser“loginname“):
????????print(“登錄失敗“)
????????browser.quit()
????????return?None
????print(“登陸成功“)
????#return?print(browser.get_cookies()
????return?browser?????#返回獲得的cookie

def?is_ele_exist(browserid):
????‘‘‘
????根據一個id判斷當前頁面元素是否存在,find方法沒有找到元素會拋出異常,利用異常判斷元素是否存在
????:param?browser:?瀏覽器
????:param?id:?元素id
????:return:?存在返回True,不存在返回False
????‘‘‘
????try:
????????s?=?browser.find_element_by_class_name(id)
????????return?True
????except:
????????return?False

def?getweibohtml(browserurl):
????‘‘‘
????用于加載我們要爬取的用戶的動態頁面(單個頁面上的所有信息)
????:param?url:?要爬取用戶的url
????:param?cookie:?用于認證用戶
????:return:?返回一個html頁面
????‘‘‘‘‘
????#browser?=?webdriver.PhantomJS(“E:/phantomjs-2.1.1-windows/bin/phantomjs.exe“)
????#browser?=?webdriver.Chrome()
????#browser.add_cookie(cookie)
????#判斷broser是否可用
????if?browser?==?None:
????????return
????browser.get(url)
????browser.save_screenshot(“f:\\test1.png“)
????js?=?“var?q=document.body.scrollTop=100000“???????#用于下滑頁面的js命令

????num?=?0
????#判斷翻頁按鈕是否出現,如果沒有出現,將鼠標下滑
????while?not?is_ele_exist(browser“W_pages“):
????????num+=1
????????browser.execute_script(js)
????????print(“還未找到元素“)
????????#最多翻頁十次,防止進入死循環
????????if(num>10):
????????????break

????print(“用戶的一頁信息已加載完畢“)
????html?=?browser.page_source
????return?html

‘‘‘
def?has_source(browserurl):
????
????判斷一個微博頁面是否有微博,如果沒有,返回Fasle
????最開始考慮不周到,這個函數導致需要再次用webdriver打開頁面
????嚴重拖慢爬取速度,棄

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-03?22:50??微博爬蟲\
?????文件????????9489??2017-06-03?00:43??微博爬蟲\weiboUtis.py
?????文件??????199812??2017-06-03?01:00??微博爬蟲\xuanzi.txt

評論

共有 條評論