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

雄县网站制作建设中心留言板 wordpress

雄县网站制作建设中心,留言板 wordpress,网约车价格,杭州互联网企业一、背景 最近突然想了解一下爬虫#xff0c;但是自己又不太了解python#xff0c;所以学习了下Java版爬虫。在这个过程中遇到了一个问题#xff0c;为了解决这个问题#xff0c;百度了很多方法#xff0c;两个小时候#xff0c;终于找到了一个最佳方案 二、问题描述 第…一、背景  最近突然想了解一下爬虫但是自己又不太了解python所以学习了下Java版爬虫。在这个过程中遇到了一个问题为了解决这个问题百度了很多方法两个小时候终于找到了一个最佳方案 二、问题描述 第一个问题想要抓取的网页是http or https请求这个很关键有些方法无法实现https请求。 第二个问题关键接口相应内容为密文(除非可以解密否则只能通过抓取网页获取解析内容) 第三个问题网页源码 与 下载后的文件不一致下载后的文件为浏览器渲染后的网页 三、解决方法 3.1、http请求 若为https则使用httpClient是无法访问通过的。该方法可以解决http请求获取页面问题 public static Page sendRequstAndGetResponse(String url) {Page page null;// 1.生成 HttpClinet 对象并设置参数HttpClient httpClient new HttpClient();// 设置 HTTP 连接超时 5shttpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);// 2.生成 GetMethod 对象并设置参数GetMethod getMethod new GetMethod(url);// 设置 get 请求超时 5sgetMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);// 设置请求重试处理getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());// 3.执行 HTTP GET 请求try {int statusCode httpClient.executeMethod(getMethod);// 判断访问的状态码if (statusCode ! HttpStatus.SC_OK) {System.err.println(Method failed: getMethod.getStatusLine());}// 4.处理 HTTP 响应内容byte[] responseBody getMethod.getResponseBody();// 读取为字节 数组String contentType getMethod.getResponseHeader(Content-Type).getValue(); // 得到当前返回类型page new Page(responseBody,url,contentType); //封装成为页面} catch (HttpException e) {// 发生致命的异常可能是协议不对或者返回的内容有问题System.out.println(Please check your provided http address!);e.printStackTrace();} catch (IOException e) {// 发生网络异常e.printStackTrace();} finally {// 释放连接getMethod.releaseConnection();}return page;}3.2、网页源码 与 下载后的文件不一致下载后的文件为浏览器渲染后的网页 方法一虽然启用了JS、CSS并添加了延时但获取的页面依旧不是渲染后的网页。 对于有些复杂网页并不能够实现有些网页在获取接口参数(甚至加密) public void test1() {// 新建一个模拟谷歌Chrome浏览器的浏览器客户端对象final WebClient webClient new WebClient(BrowserVersion.CHROME);// 当JS执行出错的时候是否抛出异常, 这里选择不需要webClient.getOptions().setThrowExceptionOnScriptError(false);// 当HTTP的状态非200时是否抛出异常, 这里选择不需要webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);webClient.getOptions().setActiveXNative(false);// 是否启用CSS, 因为不需要展现页面, 所以不需要启用webClient.getOptions().setCssEnabled(true);// 启用JSwebClient.getOptions().setJavaScriptEnabled(true);// 很重要设置支持AJAXwebClient.setAjaxController(new NicelyResynchronizingAjaxController());HtmlPage page;try {page webClient.getPage(https://xxx);Thread.sleep(10000);//程的等待 因为js加载需要时间的System.out.println(page.asXml());String s page.asXml();} catch (Exception ignored) {}finally {webClient.close();}} 方法二直接抓取渲染后网页进行解析(耗性能但有用) dependencygroupIdorg.seleniumhq.selenium/groupIdartifactIdselenium-java/artifactIdversion2.33.0/version /dependency public void test3() throws InterruptedException {//驱动所在的地址System.getProperties().setProperty(webdriver.chrome.driver, C:\\Users\\leo\\Desktop\\chromedriver.exe);ChromeOptions option new ChromeOptions();//chrome.exe所在的地址option.setBinary(C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe);ChromeDriver webDriver new ChromeDriver(option);String str https://aaa#;//请求根地址webDriver.get(url);System.out.println(url);Thread.sleep(3000);//页面信息WebElement htmlElement webDriver.findElement(By.xpath(/html));String text htmlElement.getText();}四、总结 内容简单但是有效使用爬虫技术时候请一定要合法哦
http://www.zqtcl.cn/news/242217/

相关文章:

  • 免费备案网站空间网站怎么做组织图
  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径
  • 十大wordpress主题江门seo排名优化
  • 石家庄网站搭建定制在百度上如何上传自己的网站
  • 南宁建设厅官方网站福州中小企业网站制作
  • 模板网站建设平台昆山专业网站建设公司哪家好
  • 百度指数的数值代表什么网站建设优化的作用
  • 河南便宜网站建设价格wordpress页面图片插件
  • 网站生成wordwordpress汽车主题公园
  • 网络营销成功的案例及其原因湖南网站seo地址
  • 潍坊企业网站模板绩效考核表 网站建设
  • 建设企业网站公做深度游网站 知乎
  • 可以做h5的网站韶关网站建设制作
  • 企业网站建设的基本要素有哪些通知模板范文
  • 网站建设计划书范本住房和城乡建设部网站事故快报
  • 西安网站建设公司排家居用品东莞网站建设
  • 网站建设评比文章上海手机网站建设价格
  • 微信手机网站三合一建筑工程网络计划方法
  • 网站上文章分享的代码怎么做的建在线教育网站需要多少钱
  • 如何自己弄网站怎么用手机做网站服务器
  • 如果我的网站被百度收录了_以后如何做更新争取更多收录有做不锈钢工程的网站
  • 适合做公司网站的cms东莞阳光网站投诉平台
  • 建设一个网站的意义印刷东莞网站建设技术支持
  • 80端口被封怎么做网站个人网站做支付接口
  • 如何区分网站开发语言建设网站地图素材
  • 建网站的流程怎么投稿各大媒体网站