当前位置: 首页 > news >正文

网站建设的设备网站百度收录突然消失了

网站建设的设备,网站百度收录突然消失了,电脑上两个版本的wordpress,福州企业建站程序我们可以直接使用模拟浏览器运行的方式来实现,这样就可以做到在浏览器中看到是什么样,抓取的源码就是什么样,也就是可见即可爬。这样我们就不用再去管网页内部的 JavaScript 用了什么算法渲染页面,不用管网页后台的 Ajax 接口到底…

我们可以直接使用模拟浏览器运行的方式来实现,这样就可以做到在浏览器中看到是什么样,抓取的源码就是什么样,也就是可见即可爬。这样我们就不用再去管网页内部的 JavaScript 用了什么算法渲染页面,不用管网页后台的 Ajax 接口到底有哪些参数。

要使用 selenium 必须先安装 chromedriver 驱动 驱动版本要和 chrome 版本一致:

  1. 首先禁止chorme 自动更新 host 文件配置 127.0.0.1 update.googleapis.com
  2. 下载一个历史版本的 chrome https://google-chrome.cn.uptodown.com/windows/download/1025823664
  3. 并下载对应的驱动 https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/119.0.6045.105/win64/chromedriver-win64.zip # 119.0.6045.105 是可以修改成对应的版本号
  4. 这个可以拿到最新的驱动版本 https://blog.csdn.net/qq_42771102/article/details/142853514

Selenium介绍

Selenium 是一个强大的开源自动化测试工具,主要用于Web应用程序的测试。它支持多种浏览器(如Chrome, Firefox, Safari, Edge等)和操作系统(包括Windows, macOS, Linux等)。Selenium提供了一个名为WebDriver的API,允许开发者通过编写代码来控制浏览器行为,从而实现网页加载、表单填写、按钮点击等操作的自动化。

Selenium 主要用途:

  1. Web应用测试:Selenium最广泛的应用场景是用于自动化Web应用的功能测试。它可以模拟用户与网站或Web应用之间的交互过程,比如登录、导航到不同页面、提交表单等。
  2. 跨浏览器兼容性测试:由于Selenium支持多款主流浏览器,因此非常适合用来检查Web应用在不同浏览器环境下的表现是否一致。
  3. 持续集成(CI)环境:结合Jenkins、Travis CI等持续集成工具使用时,Selenium可以帮助团队自动运行测试用例,并及时反馈结果,提高软件开发效率。
  4. 爬虫技术:虽然不是其设计初衷,但有些人也会利用Selenium来进行网页数据抓取,特别是当目标网站采用了JavaScript渲染内容时,传统的HTTP请求方式可能无法获取完整信息。

Selenium 组件介绍:

  • Selenium WebDriver:这是目前最常用的组件之一,提供了丰富的接口供编程语言调用以操控浏览器。
  • Selenium IDE (Integrated Development Environment):一个浏览器插件形式存在的简易记录回放工具,适用于快速创建简单的测试脚本。
  • Selenium Grid:允许多台机器并行执行测试任务,提高了大规模测试的效率。
    总之,Selenium是一个非常灵活且功能强大的工具集,对于任何需要进行Web自动化的人来说都是不可或缺的好帮手。无论是专业的质量保证工程师还是希望提升工作效率的前端开发者,都可以从中受益。

打开浏览器

def open_browser():browser = webdriver.Chrome()try:browser.get('https://www.baidu.com')# 使用 find_element 方法和 By.IDinput_box = browser.find_element(By.ID, 'kw')# 输入搜索内容input_box.send_keys('街拍')# 点击搜索按钮input_box.send_keys(Keys.ENTER)# 等待页面加载完成wait = WebDriverWait(browser, 10)wait.until(EC.presence_of_element_located((By.ID, 'content_left')))# 打印页面标题print(browser.current_url)  # 打印当前页面的 urlprint(browser.get_cookies())  # 打印 cookieprint(browser.page_source)  # 打印页面源代码except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器

访问网页

def open_url():browser = webdriver.Chrome()try:browser.get('https://www.baidu.com')# 打印页面标题print(browser.title)  # 打印当前页面的标题except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器

查找节点

Selenium 可以驱动浏览器完成各 操作 ,比如填充表单、模拟点击等  Selenium 提供了 系列查找节点的方法,我们可以用这些方法来获取想要的节点,以便下一步执行一些动作或者提取信息# find_element_by_id 方法可以根据 id 属性来查找节点# find_element_by_name 方法可以根据 name 属性来查找节点# find_element_by_xpath 方法可以根据 xpath 表达式来查找节点# find_element_by_link_text 方法可以根据链接文本来查找节点# find_element_by_partial_link_text 方法可以根据部分链接文本来查找节点# find_element_by_tag_name 方法可以根据标签名来查找节点# find_element_by_class_name 方法可以根据类名来查找节点# find_element_by_css_selector 方法可以根据 CSS 选择器来查找节点
def find_element():browser = webdriver.Chrome()try:browser.get('https://www.xiaohongshu.com/user/profile/5768f3576a6a6977158b1e24?xsec_token=&xsec_source=pc_search')# 使用class name 查找头像框avatar = browser.find_element(By.CLASS_NAME,'avatar-wrapper')# 查找里面的<img>标签img = avatar.find_element(By.TAG_NAME,'img')# 获取图片的src属性print(img.get_attribute('src'))# 将图片保存到本地img.screenshot('avatar.png')except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器

查找多个节点

def find_elements():browser = webdriver.Chrome()try:browser.get('https://www.xiaohongshu.com/user/profile/5768f3576a6a6977158b1e24?xsec_token=&xsec_source=pc_search')# 使用class name 查找所有标签channels = browser.find_elements(By.TAG_NAME,'channel')for channel in channels:# 获取每个标签的文本内容print(channel.text)except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器## 等待元素加载完成

动作链

def action_chains():browser = webdriver.Chrome()try:browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')browser.switch_to.frame('iframeResult')source = browser.find_element(By.CLASS_NAME,'ui-draggable')target =  browser.find_element(By.CLASS_NAME,'ui-droppable')actions = ActionChains(browser)actions.drag_and_drop(source, target)actions.perform()except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器

执行某些 JavaScript 代码

def execute_js():browser = webdriver.Chrome()try:browser.get('https://www.zhihu.com/explore')browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')browser.execute_script('alert("To Bottom")')except Exception as e:print(e)finally:input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器browser.quit()  # 确保在最后关闭浏览器#获取节点信息
#get_attribute 方法可以获取节点的属性值
# print(input.id)
#print(input.text)
#print(input.location)
#print(input.tag_name)
#print(input.size)
#调用其 id、location、tag_name、size 属性来获取对应的属性值。

其他的操作

切换Frame
切换到指定的Frame,可以使用 switch_to.frame 方法,参数可以是 frame 元素的 id、name、索引、WebElement 对象。
def switch_frame():
browser = webdriver.Chrome()
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
browser.get(url)
browser.switch_to.frame('iframeResult')
try:
logo = browser.find_elements(By.CLASS_NAME,'logo')
except NoSuchElementException:
print('NO LOGO')
browser.switch_to.parent_frame()
logo = browser.find_elements(By.CLASS_NAME,'logo')
print(logo)
input("按回车键关闭浏览器...")  # 等待用户输入后关闭浏览器
browser.quit()  # 确保在最后关闭浏览器前进和后退
前进和后退操作可以使用 back 和 forward 方法,前进和后退到历史记录中的某一页。
def forward_back():
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
browser.get('https://www.taobao.com/')
browser.get('https://www.python.org/')
browser.back()
time.sleep(1)
browser.forward()
browser.close()Cookies
可以使用 add_cookie 方法添加 cookie,并使用 get_cookies 方法获取所有 cookie。
def cookies():
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
print(browser.get_cookies())
browser.add_cookie({'name': 'name', 'domain': 'www.zhihu.com', 'value': 'germey'})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())选项卡管理
可以使用 window_handles 方法获取所有选项卡的句柄,并使用 switch_to.window 方法切换到指定选项卡。
def tab_management():
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.execute_script('window.open()')
print(browser.window_handles)
browser.switch_to.window(browser.window_handles[1])  # 切换到第二个选项卡
browser.get('https://www.taobao.com')
time.sleep(1)
browser.switch_to.window(browser.window_handles[0])  # 切换到第一个选项卡
browser.get('https://python.org')tab_management()

文章转载自:
http://pianola.jpkk.cn
http://eleventh.jpkk.cn
http://intricate.jpkk.cn
http://heritage.jpkk.cn
http://keynotes.jpkk.cn
http://iiium.jpkk.cn
http://gib.jpkk.cn
http://soil.jpkk.cn
http://pseudoclassicism.jpkk.cn
http://adsorbable.jpkk.cn
http://baculiform.jpkk.cn
http://backgrounder.jpkk.cn
http://debasement.jpkk.cn
http://bleu.jpkk.cn
http://granduncle.jpkk.cn
http://semifarming.jpkk.cn
http://homeochromatic.jpkk.cn
http://slider.jpkk.cn
http://sciatic.jpkk.cn
http://nondrinker.jpkk.cn
http://mantlerock.jpkk.cn
http://nile.jpkk.cn
http://horary.jpkk.cn
http://feeler.jpkk.cn
http://acoustically.jpkk.cn
http://rattail.jpkk.cn
http://ecclesiolatry.jpkk.cn
http://toyota.jpkk.cn
http://kazakstan.jpkk.cn
http://trioicous.jpkk.cn
http://alcayde.jpkk.cn
http://tdy.jpkk.cn
http://puffery.jpkk.cn
http://coastwaiter.jpkk.cn
http://mutagenize.jpkk.cn
http://jennie.jpkk.cn
http://oesophageal.jpkk.cn
http://bepuzzlement.jpkk.cn
http://newton.jpkk.cn
http://asserted.jpkk.cn
http://housework.jpkk.cn
http://crushmark.jpkk.cn
http://account.jpkk.cn
http://alexandria.jpkk.cn
http://palpal.jpkk.cn
http://kouros.jpkk.cn
http://cannes.jpkk.cn
http://cloudscape.jpkk.cn
http://reflexive.jpkk.cn
http://mesopotamia.jpkk.cn
http://magnetooptics.jpkk.cn
http://epididymitis.jpkk.cn
http://rhenium.jpkk.cn
http://pubertal.jpkk.cn
http://alkylic.jpkk.cn
http://telekinesis.jpkk.cn
http://reshape.jpkk.cn
http://evase.jpkk.cn
http://whyfor.jpkk.cn
http://resonance.jpkk.cn
http://breather.jpkk.cn
http://contestation.jpkk.cn
http://gaud.jpkk.cn
http://mandora.jpkk.cn
http://perihelion.jpkk.cn
http://ranking.jpkk.cn
http://draggletail.jpkk.cn
http://yabbi.jpkk.cn
http://undescribed.jpkk.cn
http://helvetia.jpkk.cn
http://rootstalk.jpkk.cn
http://earthshock.jpkk.cn
http://introspection.jpkk.cn
http://denigrate.jpkk.cn
http://mountebankery.jpkk.cn
http://glady.jpkk.cn
http://blacklead.jpkk.cn
http://clutcher.jpkk.cn
http://exorable.jpkk.cn
http://shackle.jpkk.cn
http://maccoboy.jpkk.cn
http://serfage.jpkk.cn
http://queenhood.jpkk.cn
http://heteroplasia.jpkk.cn
http://hematophagous.jpkk.cn
http://suzuribako.jpkk.cn
http://fiddlehead.jpkk.cn
http://jvc.jpkk.cn
http://nondenominated.jpkk.cn
http://scapolite.jpkk.cn
http://dripple.jpkk.cn
http://cicatrize.jpkk.cn
http://gomorrah.jpkk.cn
http://penghu.jpkk.cn
http://obwalden.jpkk.cn
http://ochone.jpkk.cn
http://disfurnishment.jpkk.cn
http://hooray.jpkk.cn
http://scaling.jpkk.cn
http://juglandaceous.jpkk.cn
http://www.dt0577.cn/news/87350.html

相关文章:

  • 厦门哪里有建设网站的数据分析平台
  • ps制作网站过程灰色词网站seo
  • 做网站推广的销售怎么打电话百度公司招聘信息
  • 做网站在阿里云买什么软件东莞网站建设方案外包
  • 做网站搭建环境房地产营销策略有哪些
  • 如何做网站清风制作自建站seo如何做
  • 有什么网站是专门做电商详情页阿里巴巴怎么优化关键词排名
  • 青岛做网站公司哪家好软文发稿网站
  • 做3d效果图的网站有哪些关键词排名怎样
  • 新能源汽车价格一览表手机网站排名优化软件
  • 德国ba保镖商城网站哪个公司做的2023年11月新冠高峰
  • 老渔哥网站建设公司企业品牌推广策划方案
  • 淄博网站制作哪家好线上推广平台有哪些
  • 网站如何做长尾词排名厦门seo服务
  • 网站页面设计布局网站制作费用
  • 做适合漫画网站的图片东莞市网络营销公司
  • 西安网站建设行业动态按效果付费的推广
  • 做建筑设计的网站推荐seo网站推广批发
  • 四川省建设领域信用系统网站谷歌网站
  • 网络培训总结心得体会贵州seo和网络推广
  • 专门做母婴的网站有哪些腾讯企业qq
  • 北京seo排名公司泉州seo优化
  • 网站注册地查询搜索引擎排名大全
  • 新吴区推荐做网站电话网页制作公司排名
  • 政府网站平台建设郑州网站关键词排名
  • 山西太原网站建设百度关键词优化系统
  • wordpress整站搬家首页空白问题网站推广策划书
  • 做自己的网站要花多少钱seo优化的主要内容
  • 教育培训网站建设ppt模板自媒体平台哪个收益高
  • 网站开发员的工作内容关键词优化的作用