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

做汽车导航仪在什么网站找客户如何建立自已的购物网站

做汽车导航仪在什么网站找客户,如何建立自已的购物网站,创业网站模板,简单的个人网站下载版本#xff1a; Chrome 124Python 12Selenium 4.19.0 版本与我有差异不要紧#xff0c;只要别差异太大比如 Chrome 用 57 之前的版本了#xff0c;就可以看本文。 如果你从前完全没使用过、没安装过Selenium#xff0c;可以参考这篇博客《【记录】Python3#xff5c;Sele… 版本 Chrome 124Python 12Selenium 4.19.0 版本与我有差异不要紧只要别差异太大比如 Chrome 用 57 之前的版本了就可以看本文。 如果你从前完全没使用过、没安装过Selenium可以参考这篇博客《【记录】Python3Selenium4 极速上手入门Windows》快速安装Edge版本的webdriver再继续看下文。 前言 这个问题我本来以为就是抓个包解决的不过后来才发现因为现在浏览器的设计原因返回Content-Type:application/pdf;的时候就会自动在浏览器中预览文件报文的响应会解析成以下东西 !doctype htmlhtml body styleheight: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(51, 51, 51); embed name2F7A72AC9A127791D290DA205760BBE4 styleposition:absolute; left: 0; top: 0;width100% height100% srcabout:blank typeapplication/pdf internalid2F7A72AC9A127791D290DA205760BBE4 /body/html这会导致网页在遇到这种响应的时候会预览PDF而不是下载PDF。 网上方法一大堆我看五花八门的其实解决起来就那么回事有人问我我就汇总一下ok废话不多说。 文章目录 前言方式一浏览器设置PDF打开方式默认为下载1.1 具体做法1.2 做法评估 方式二Selenium设置禁用PDF Viewer插件2.1 具体做法2.2 做法评估 方式三requests库直接请求url3.1 具体做法3.2 方法评估彩蛋不下载PDF直接读取内容 方式一浏览器设置PDF打开方式默认为下载 1.1 具体做法 参考如何使 pdf 文件在浏览器里面直接下载而不是打开-Jacob’s Blog 如果关掉浏览器的PDF阅读模式就不会预览而是会直接下载例如谷歌浏览器中的设置项步骤如下 打开设置搜索pdf前往网站设置。展开更多内容设置并点击PDF文档。 修改默认行为为下载PDF文件。 如果设置了下载路径为“另存为”的话仍然需要手动选择PDF的下载路径。如下所示。 但是这个问题是可以解决的。 如果根据下面的步骤设置了默认下载路径则会自动下载如下。 如下所示 1.2 做法评估 优点能让我们的读者朋友们弄清楚不预览不弹窗的可视化逻辑。缺点 这种做法放到selenium里面就没用了因为这个设置不会继承到 chromedriver 中去。不会继承的问题是有可能解决的即设置user-data-dir。不过我按照这个思路去解决发现并不起效options.add_argument(user-data-dirC:/Users/User/AppData/Local/Google/Chrome/User Data/Default)具体路径可以通过chrome://version查看路径查找参考chromedriver官方文档如下所示。 方式二Selenium设置禁用PDF Viewer插件 2.1 具体做法 参考selenium disable chrome pdf viewer python-稀土掘金 根据这篇博客说其实谷歌浏览器是靠一个自带的叫PDF-Viewer的插件来打开网页的pdfselenium有个语句能禁用这个插件。 相关代码如下 from time import sleep from selenium import webdriverchrome_options webdriver.ChromeOptions() driver webdriver.Chrome(chrome_optionschrome_options)chrome_options.add_experimental_option(prefs, {download.prompt_for_download: False,plugins.always_open_pdf_externally: True})driver webdriver.Chrome(chrome_optionschrome_options) sleep(1000) # 有时候会有人还没等到它下载就退出了然后觉得这个方法没有作用所以特地加一行sleep注意一点网上还流传着另一种代码plugins.plugins_disabled: [Chrome PDF Viewer]这个早就已经没用了自从 Chrome 57。具体的讨论帖子可以看 Disabling PDF Viewer plugin in chromedriver-StackOverflow。 2.2 做法评估 优点和Selenium结合得非常好缺点有人说这个方法不起效因为他们没有sleep在还没开始下载的时候这个程序就退出了。这个并不是编程人员的毛病而是这个方法本身确实有缺点。① 它具体下载到哪里了不太好获取因为是Default还得另外写代码② 你没办法确定这个 PDF 是否下载好了。和第一个缺点一样都是因为这个下载位置都不太好获取下载状态更难获取③ 需要等待一定的时间去下载它但又难以知道要等多久。这就是 Selenium 的缺点了它在模拟方面登峰造极也在线程控制方面和浏览器的线程控制一样随意而混乱…… 这个做法的缺点如此之多以至于第三个方式存在极大的生存土壤。 方式三requests库直接请求url 3.1 具体做法 参考没参考这就是我自己平常的写法。 都已经有url了就别那么麻烦了赶紧直接请求得到结果吧。。 可用的示例代码如下 import requests# URL of the PDF file pdf_url https://xx.pdf# Send an HTTP GET request to the URL response requests.get(pdf_url)# Check if the request was successful (status code 200) if response.status_code 200:# Open a file in binary write modewith open(downloaded_pdf.pdf, wb) as f:# Write the PDF content to the filef.write(response.content)print(PDF downloaded successfully.) else:print(Failed to download PDF. Status code:, response.status_code)3.2 方法评估 优点简单直接高效。缺点requests库有个坏处就是总是要自己定义header的参数。而这一点Selenium弥补得很好。为了继承Selenium的自动填充的参数避免反爬虫的问题GPT添加headers如下所示from selenium import webdriver import requests# Set up Selenium WebDriver (make sure to have appropriate driver installed) driver webdriver.Chrome()# Navigate to the website containing the PDF driver.get(https://example.com/your_pdf_link)# Extract the URL of the PDF file pdf_url driver.current_url# Retrieve the headers from the WebDriver headers driver.execute_script(return Object.fromEntries(new Map(Object.entries(arguments[0].headers))), driver.execute_script(return window.navigator))# Use requests to download the PDF file with headers response requests.get(pdf_url, headersheaders)# Check if the request was successful if response.status_code 200:# Save the PDF filewith open(output.pdf, wb) as f:f.write(response.content)print(PDF file downloaded successfully.) else:print(Failed to download the PDF file.)# Close the Selenium WebDriver driver.quit()说实在的啊这个script是不能用的但是思路就是继承Selenium的参数。 根据我的精心查找我发现写出一个继承 Selenium 参数的 script 的方式已经值得再写一篇博客了这篇博客的链接是【代码】Python3Requests 库怎么继承 Selenium 的 Headers 2024Chrome。 一般情况指对 headers 要求不高时加上这一个参数就行反爬虫厉害的网站得再加点别的 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36}彩蛋不下载PDF直接读取内容 通过 requests 已经获取了 response 之后可以通过如下步骤直接使用 pdf 的内容这样做和下载之后再open是一样的 import io import PyPDF2# 使用 io 模块创建一个 BytesIO 对象以便将 response.content 传递给 PyPDF2 pdf_file io.BytesIO(response.content)# 创建一个 PdfFileReader 对象来读取 PDF 文件内容 pdf_reader PyPDF2.PdfFileReader(pdf_file)# 获取 PDF 文件中的页数 num_pages pdf_reader.numPages print(Number of pages:, num_pages)# 逐页提取文本并打印 for page_num in range(num_pages):# 获取页面对象page pdf_reader.getPage(page_num)# 提取文本text page.extractText()# 打印文本print(Page, page_num 1, :, text.strip())# 关闭 BytesIO 对象 pdf_file.close() 注意一定要用BytesIO不需要再with open什么东西了。 好的就分享到这里。 本账号所有文章均为原创欢迎转载请注明文章出处https://blog.csdn.net/qq_46106285/article/details/137883196。百度和各类采集站皆不可信搜索请谨慎鉴别。技术类文章一般都有时效性本人习惯不定期对自己的博文进行修正和更新因此请访问出处以查看本文的最新版本。
http://www.pierceye.com/news/577576/

相关文章:

  • 网站改版 权重php做网站脑图
  • 交易网站建设需要学什么网店装修
  • 青岛市城市建设档案馆网站东莞网络推广优化排名
  • 成交型网站做网站优化的价格
  • 后台网站设计烟台优化网站公司
  • 网站开发中涉及的侵权行为软件开发案例展示
  • 网站开发u盘128够吗网络服务器是指什么
  • 网站空间试用百度搜索引擎关键词优化
  • 中山品牌网站设计阿里云企业网站怎么建设
  • 做网站推广广告房地产行业网站开发
  • 济宁网站建设 企业谷wordpress手机 不适应
  • 如何用php做网站合肥专业手机网站哪家好
  • 如何推广自己的网站和产品如何用dw做网站地图
  • 株洲有名的网站重庆市公路建设信息网官网
  • 网站安全证书出错怎么做dw网页制作素材网站
  • 收录查询 站长工具给网站做解答是干嘛的
  • 成都哪些公司可以做网站建网站现软件
  • 深圳wap网站建设传奇霸主页游
  • 做网站首先要干什么营销软文200字
  • 帝国cms做的网站私人定制女装店
  • 网站建设南沙wordpress video
  • 网站建设开票应该开哪个行业什么网站可以免费做视频的软件
  • 百度seo查询收录查询网站推广策划案seo教程
  • 如何免费建立网站中贤建设集团网站
  • 如何做转运网站黄聪 wordpress
  • 临海市住房与城乡建设规划局网站宁波网络推广培训
  • go 网站开发自己在线制作logo
  • 重庆市网站建设公司企业服务账号
  • 网站建设的市场情况网站系统里不能打印
  • 网站如何适应屏幕做网站时无法上传图片