excel抓取网页动态数据(第一时间送达76套java从入门到精通实战课程分享 )

优采云 发布时间: 2022-04-13 12:29

  excel抓取网页动态数据(第一时间送达76套java从入门到精通实战课程分享

)

  点击上方蓝色字体,选择“明星公众号”

  优质文章,第一时间发货

  76套java课程从入门到精通实战

  前言

  第一篇文章文章发在CSDN,时隔两年,终于实现了自由爬微博!本文可以解决微博预登录、识别“展开全文”、抓取完整数据、翻页设置等问题。由于新接触爬虫,有些术语可能用错了,请指正!

  一、动态爬虫和静态爬虫的区别

  1、静态网页

  静态网页是纯HTML,无后台数据库,无程序,无交互,体积小,加载速度快。静态网页的抓取只需要四个步骤:发送请求、获取相应内容、解析内容和保存数据。

  2、动态网页

  动态网页上的数据会随着时间和用户交互而变化,所以数据不会直接呈现在网页的源代码中,数据会以Json的形式保存。所以动态网页比静态网页多了一个步骤,就是需要渲染才能获取相关数据。

  3、如何区分动态和静态网页

  加载网页后,右键选择“查看网页源代码”。如果网页上的大部分字段都出现在源代码中,那么这是一个静态网页,否则就是一个动态网页。

  

  二、动态爬虫的两种方法

  1.逆向分析爬取动态网页

  调度资源对应的URL适用的数据为json格式,Javascript触发调度。主要步骤是获取待调度资源对应的URL——访问URL获取资源的数据。(这里不详细解释)

  2.使用Selenium库爬取动态网页

  使用 Selenium 库,它使用 JavaScript 来模拟真实用户对浏览器所做的事情。本案将采用这种方法。

  三、安装 Selenium 库并下载浏览器补丁

  1.可以使用 pip 工具安装 Selenium 库。

  2.下载与您的 Chrome 浏览器版本匹配的浏览器补丁。

  Step1:检查Chrome的版本

  

  Step2:去下载对应版本的浏览器补丁。网址:

  Step3:解压文件并将其与python.exe放在同一个文件中

  

  四、页面打开和预登录

  1.导入 selenium 包

  from selenium import webdriver

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

import time

import pandas as pd

  2.打开页面

  driver = webdriver.Chrome()    

print('准备登陆Weibo.cn网站...')

#发送请求

driver.get("https://login.sina.com.cn/signup/signin.php")

wait = WebDriverWait(driver,5)

#重要:暂停1分钟进行预登陆,此处填写账号密码及验证

time.sleep(60)

  3.使用交互操作。运行以上两个程序后,会弹出一个框。此框用于模拟网页的交互。在此框中完成登录(包括填写登录名、密码和短信验证等)

  

  4.完成预登录后,进入个人主页

  

  五、关键词搜索操作

  1.找到上图中的关键词输入框,在框中输入搜索对象,如“好好学习”

  #使用selector去定位关键词搜索框

s_input = driver.find_element_by_css_selector('#search_input')

#向搜索框中传入字段

s_input.send_keys("努力学习")

#定位搜索键

confirm_btn = driver.find_element_by_css_selector('#search_submit')

#点击

confirm_btn.click()

  2.上一步代码完成后,会弹出一个新窗口,从个人主页跳转到微博搜索页面。但是驱动还是在个人主页,需要手动将驱动移动到微博搜索页面。

  

  3.使用switch_to.window()方法进行移位

  #人为移动driver

driver.switch_to.window(driver.window_handles[1])

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线