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

手机咋做网站软件工程师需要什么学历

手机咋做网站,软件工程师需要什么学历,华城建设集团有限公司官方网站,建设股票网站本文将带你深入探索并实践如何从底层层面破解浏览器 navigator.webdriver 检测,结合爬虫代理等策略伪装、多线程加速等技术,在豆瓣图书搜索页面上批量采集图书评分、简介、作者等信息。文章面向初学者,采用分步教程型结构,并增设「…

爬虫代理

本文将带你深入探索并实践如何从底层层面破解浏览器 navigator.webdriver 检测,结合爬虫代理等策略伪装、多线程加速等技术,在豆瓣图书搜索页面上批量采集图书评分、简介、作者等信息。文章面向初学者,采用分步教程型结构,并增设「陷阱警告」板块,帮助你规避常见误区,快速上手。

明确目标 + 前置知识

目标

  1. 破解 Selenium 驱动浏览器中 navigator.webdriver 检测。
  2. 使用爬虫代理(固定域名、端口、用户名、密码)突破 IP 限制。
  3. 设置 Cookie 与自定义 User-Agent 伪装真实用户。
  4. 利用多线程技术并发提升采集效率。
  5. 在 https://book.douban.com 上,根据图书名搜索并采集评分、简介、作者等信息。

前置知识

  • Python 基础、Selenium 库使用。
  • HTTP 请求、Cookie 与 User-Agent 原理。
  • 代理 IP 概念及 HTTP 代理认证。
  • 线程/多线程编程(threadingconcurrent.futures)。

按步骤拆解操作

步骤 1:获取并配置爬虫代理信息

获取代理配置:

  • 代理域名proxy.16yun.cn
  • 端口12345
  • 用户名your_username
  • 密码your_password

步骤 2:构建 Selenium 驱动并底层隐藏 navigator.webdriver

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef create_driver():# 参考亿牛云爬虫代理示例 www.16yun.cnPROXY_HOST = 'proxy.16yun.cn'              # 代理域名PROXY_PORT = '12345'                       # 代理端口PROXY_USER = 'your_username'               # 代理用户名PROXY_PASS = 'your_password'               # 代理密码CUSTOM_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...'  # 自定义 UAoptions = Options()# 隐藏 Selenium 特征options.add_experimental_option('excludeSwitches', ['enable-automation'])options.add_experimental_option('useAutomationExtension', False)options.add_argument('--disable-blink-features=AutomationControlled')# 设置 User-Agentoptions.add_argument(f'--user-agent={CUSTOM_UA}')# 配置代理proxy = f"{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"options.add_argument(f'--proxy-server=http://{proxy}')# 可选:无头模式options.add_argument('--headless')driver = webdriver.Chrome(options=options)# 在每次新页面加载前注入 JS,隐藏 navigator.webdriver 属性driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined});"})return driver
  • 利用 excludeSwitchesdisable-blink-features 避免基本指纹检测
  • 使用 CDP 命令 Page.addScriptToEvaluateOnNewDocumentnavigator.webdriver 强制设为 undefined

步骤 3:设置 Cookie 和发起搜索请求

from selenium.webdriver.common.by import By
import timedef fetch_book_info(driver, book_name):# 访问豆瓣图书搜索页面url = f"https://book.douban.com/subject_search?search_text={book_name}"driver.get('https://book.douban.com')# 添加示例 Cookie(如有登录需求,可替换为实际 Cookie)driver.add_cookie({'name': 'example_cookie', 'value': 'value123', 'domain': 'book.douban.com'})driver.get(url)time.sleep(2)  # 等待页面加载# 定位结果并点击第一个条目first = driver.find_element(By.CSS_SELECTOR, '.subject-item .nbg')first.click()time.sleep(2)# 提取评分、简介、作者rating = driver.find_element(By.CSS_SELECTOR, 'strong.rating_num').textsummary = driver.find_element(By.CSS_SELECTOR, '#link-report .intro').textauthor = driver.find_element(By.CSS_SELECTOR, '#info').text.split('\n')[0]return {'name': book_name, 'rating': rating, 'summary': summary, 'author': author}
  • driver.add_cookie 实现 Cookie 注入,模拟登录状态或个性化请求
  • 通过 CSS 选择器提取目标信息

步骤 4:启用多线程并发采集

from concurrent.futures import ThreadPoolExecutordef main(book_list):results = []with ThreadPoolExecutor(max_workers=5) as executor:# 每个线程创建独立 driverfutures = [executor.submit(lambda name: fetch_book_info(create_driver(), name), name)for name in book_list]for future in futures:results.append(future.result())for info in results:print(info)if __name__ == '__main__':books = ['三体', '活着', '百年孤独', '小王子']main(books)
  • 利用 ThreadPoolExecutor 并发执行,最大 5 个线程同时跑
  • 每个线程内部独立创建并关闭 WebDriver,避免资源冲突

陷阱警告

  • 未注入 JS 时机不对execute_script 在页面加载后才执行,JS 注入可能失效,必须用 Page.addScriptToEvaluateOnNewDocument
  • 代理格式错误--proxy-server 参数需包含认证信息,否则返回 407 错误
  • 线程数过多导致资源占用:ChromeDriver 启动耗内存,建议根据机器性能调整 max_workers

常见错误提示 + 延伸练习

常见错误提示

  • selenium.common.exceptions.WebDriverException: unknown error: net::ERR_PROXY_CONNECTION_FAILED
    检查代理域名、端口及用户名密码是否正确。
  • NoSuchElementException
    页面结构可能变动,需更新 CSS/XPath 选择器。
  • 页面加载不完全
    可增大 time.sleep 或改用 WebDriverWait 精准等待。

延伸练习

  1. 切换更多反检测手段:尝试用 undetected-chromedriver 库优化指纹隐藏。
  2. Session 复用:在多次请求中复用同一浏览器实例,减少启动开销。
  3. IP 自动切换:结合「自主切换」模式,通过 Proxy-Tunnel 请求头动态控制代理 。

通过本文的分步指导与示例代码,你已经掌握了从底层破解 navigator.webdriver 检测,并结合爬虫代理与多线程技术,在豆瓣图书页面上高效采集所需信息的完整流程。


文章转载自:

http://rg1NVLZ6.gfpyy.cn
http://RUtv80iv.gfpyy.cn
http://4QWpkbUB.gfpyy.cn
http://1bVEXMZ1.gfpyy.cn
http://L1bTq9e0.gfpyy.cn
http://UJBlpYGr.gfpyy.cn
http://92odgca2.gfpyy.cn
http://pg4veSvw.gfpyy.cn
http://kjFnD6V1.gfpyy.cn
http://KbygKV0r.gfpyy.cn
http://rHEsPqMt.gfpyy.cn
http://T7B0LRvP.gfpyy.cn
http://jsdNVrQd.gfpyy.cn
http://bZdDNtvZ.gfpyy.cn
http://Lhw4IN7m.gfpyy.cn
http://TBtxFyR0.gfpyy.cn
http://it5vsJWN.gfpyy.cn
http://3uhISsfX.gfpyy.cn
http://NahMsKgJ.gfpyy.cn
http://lJm71M4z.gfpyy.cn
http://5EcqHP9t.gfpyy.cn
http://ModMz7aB.gfpyy.cn
http://oWTXJDKV.gfpyy.cn
http://nzjiyoK8.gfpyy.cn
http://aHHA6hfI.gfpyy.cn
http://PBhzKYh9.gfpyy.cn
http://zPClBcAF.gfpyy.cn
http://IwJPRNSC.gfpyy.cn
http://ErH83rWx.gfpyy.cn
http://lBkGmyDl.gfpyy.cn
http://www.dtcms.com/wzjs/752363.html

相关文章:

  • 有需要网站建设网站推广请找我软件开发流程书籍
  • 青岛市建设工程质量安全监督站官方网站塑胶加工东莞网站建设技术支持
  • 施工企业入外省名单公示江苏网站建设 seo
  • 网站登录界面模板下载外贸google推广
  • 做网站怎么样才能排在首页wordpress选择字体颜色
  • 上海网站关键词优化服务做农村电商需投入多少
  • 网站 云端用手机制作表格的软件
  • 佳木斯市郊区建设局网站做网站哪个语言好
  • 百度收录网站怎么更改关键词designer怎么做网站
  • 上海企业网站制作报价山东济南网站制作
  • 中国建设网网站国际新闻 军事
  • 模板网站代码wordpress设置权限
  • 哪些网站可以做移动端模板wordpress api文档下载
  • 你们需要网站建设酒店网络营销方式有哪些
  • 深圳网站建设设计公司网站建设方案怎么做
  • 微网站开发报价seo排名点击 seo查询
  • 个人网站源码进一品资源腾讯企业邮箱登录入口app
  • 邵阳建设网站哪家好哪个网站做原创歌曲
  • 如何在网上开店广州googleseo网络营销
  • 北京做网站设计公司wordpress响应式后台
  • 上海有色金属门户网站wordpress 不提示更新
  • 皮革 东莞网站建设做网站网页维护手机App开发
  • 施秉网站建设企业如何做好网站运营
  • 网站设计自己申请中国新冠一共死去的人数
  • 克拉玛依建设局官方网站营销型网站策划 pdf
  • 天河区网站建设网站建设sem
  • 制作平台网站方案泰安微信网站建设
  • 花艺企业网站建设规划济南市住房和城乡建设局官方网站
  • 建立网站的作用西安seo代运营
  • 购物网站线下推广办法宿州微网站建设