日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java爬虫技术(二)爬取京东iPhone商品信息并生成Json日志

發布時間:2025/3/20 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java爬虫技术(二)爬取京东iPhone商品信息并生成Json日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備

配置maven環境
下載瀏覽器驅動,并引入;

下載瀏覽器驅動

前往華為云鏡像站下載谷歌瀏覽器驅動

https://mirrors.huaweicloud.com/home


要下載與自己電腦上谷歌瀏覽器版本相匹配的;

引入pom.xml依賴

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-api</artifactId><version>3.141.59</version></dependency>

開始爬取

目標網址

https://search.jd.com/Search?keyword=iphone%2013&psort=3&wq=iphone%2013&psort=3&pvid=37f665a84459460eb713df08bdcd7799&page=1&s=1&click=0


目標是爬取所有47頁的商品的 價格,商品名稱,商品描述;

第一頁網址:

https://search.jd.com/Search?keyword=iphone%2013&psort=3&wq=iphone%2013&psort=3&pvid=37f665a84459460eb713df08bdcd7799&page=1&s=1&click=0

第二頁網址:

https://search.jd.com/Search?keyword=iphone%2013&psort=3&wq=iphone%2013&psort=3&pvid=37f665a84459460eb713df08bdcd7799&page=3&s=61&click=0

第三頁網址:

https://search.jd.com/Search?keyword=iphone%2013&psort=3&wq=iphone%2013&psort=3&pvid=37f665a84459460eb713df08bdcd7799&page=5&s=121&click=0

經過分析發現規律: page=1 , 3 , 5 為奇數 --2i+1
s =1,60,121 依次加60-- ((i-1)*60)+1

主要代碼與操作步驟

定義一個瀏覽器對象

ChromeDriver webDriver = new ChromeDriver();

利用循環爬取45頁的數據

for(int i=1;i<45;i++) {webDriver.get("https://search.jd.com/search?keyword=iphone%2013&wq=iphone%2013&cid3=655&psort=3&page="+((2*i)-1)+"&s="+((i-1)*60)+1+"&click=0");

將頁面滑到最底部,因為京東頁面若不滑到最下面會導致有些數據加載不出來

((JavascriptExecutor)webDriver).executeScript("window.scrollTo(0,document.body.scrollHeight)");

獲取源碼

String pageSource = webDriver.getPageSource();

選中一個單元獲取其路徑

#J_goodsList > ul > li:nth-child(13) > div #J_goodsList > ul > li:nth-child > div

查看價格路徑

#J_goodsList > ul > li:nth-child(16) > div > div.p-price > strong > i

在其循環體下

div.p-price > strong > i

同理:店鋪名稱路徑 div.p-shop > span > a
商品描述路徑:div.p-name.p-name-type-2 > a > em

還要創建一個product類并建對象:

package com.zygxy.shop;public class Product {private String price;private String shopname;private String shopcontext;public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public String getShopname() {return shopname;}public void setShopname(String shopname) {this.shopname = shopname;}public String getShopcontext() {return shopcontext;}public void setShopcontext(String shopcontext) {this.shopcontext = shopcontext;} }

全部代碼

package com.zygxy.shop;import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.chrome.ChromeDriver;import java.io.IOException; import java.util.Properties; @Slf4j public class JD {public static void main(String[] args) throws IOException {Properties properties = new Properties();properties.load(JD.class.getClassLoader().getResourceAsStream("application.properties"));System.out.println(properties.getProperty("chromedriver"));System.setProperty("webdriver.chrome.driver",properties.getProperty("chromedriver"));ChromeDriver webDriver = new ChromeDriver();for (int i=1;i<45;i++){webDriver.get("https://search.jd.com/search?keyword=iphone%2013&psort=3&wq=iphone%2013&psort=3&pvid=aa23e9f58a714e9087f316ab6aa993bd&cid3=655&cid2=653&page="+((2*i)-1)+"&s="+((i-1)*60)+1+"&click=0");((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0,document.body.scrollHeight)");String pageSource = webDriver.getPageSource();Document parse = Jsoup.parse(pageSource);Elements select = parse.select("#J_goodsList > ul > li > div ");for(Element e : select){Product product = new Product();Element price = e.selectFirst(" div.p-price > strong > i");product .setPrice(price.text());Element shop_name = e.selectFirst(" div.p-shop > span > a");product.setShopname(shop_name.text());Element shopcontext = e.selectFirst(" div.p-name.p-name-type-2 > a > em");product.setShopcontext(shopcontext.text());String json = JSONObject.toJSONString(product);log.info(json);}}} }

pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>NovelParse</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-api</artifactId><version>3.141.59</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependency><!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency><!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version><scope>compile</scope></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency></dependencies><build><plugins><!-- 如果已經在Maven的全局配置中,配置了JDK編譯的界別,這個插件可以省略 --><!-- <plugin><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin> --><!--mvn:package階段使用maven-assembly-plugin可以將當前項目依賴的Jar中的字節碼也打包!默認的打包插件maven-jar-plugin,只會將自己寫的代碼打包,默認倉庫中已經安裝了所需的依賴!--><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.zygxy.JD</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build> </project>

resources配置

application.properties
本地驅動地址
chromedriver =E:\shixun\pachong\src\main\resources\chromedriver.exe

logback.xml 定義了日志的輸出地址和格式

<?xml version="1.0" encoding="UTF-8"?> <configuration><property name="LOG_HOME" value="d://shoplog" /><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%msg%n</pattern></encoder></appender><appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/shop.%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%msg%n</pattern></encoder></appender><!-- 日志輸出級別 --><root level="INFO"><appender-ref ref="rollingFile"/><appender-ref ref="console" /></root></configuration>

總結

以上是生活随笔為你收集整理的Java爬虫技术(二)爬取京东iPhone商品信息并生成Json日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人免费视频 | 国产乱淫av麻豆国产免费 | 日本a一级| 少妇做爰k8经典 | 中文字幕精品一区二区三区精品 | 国产精品久久国产精麻豆96堂 | 不卡在线播放 | 成人在线不卡视频 | 免费视频a| 久久无吗视频 | 奇米四色网 | 永久免费54看片 | 黄色网络在线观看 | 亚洲色图17p | 男人天堂视频在线 | 国产免费99 | 国产特级黄色片 | 伦理黄色片 | 91 色| ass极品国模人体欣赏 | 精品人妻在线播放 | 色吊丝中文字幕 | 香蕉精品视频在线观看 | 国产男人的天堂 | 91美女诱惑 | 日韩精品影视 | 女十八毛片| 极品国产一区 | 欧美第一页在线观看 | 网红av在线 | 国产精品综合久久久久久 | 色乱码一区二区三区网站 | 国产婷婷色一区二区 | 欧美性色黄大片手机版 | 俄罗斯黄色大片 | 内地毛片| 久久午夜免费视频 | 网站在线免费观看 | 一级片中文字幕 | 国产精品人妖 | 中文一区视频 | 国产黄在线免费观看 | 综合久久综合久久 | 国产精品一区二区三区四区视频 | 久久中文一区 | 91丨九色丨海角社区 | 超碰caopeng | 中文字幕在线视频免费 | 亚洲乱码av| 久久精品这里有 | 给我看免费高清在线观看 | 粉嫩av蜜桃av蜜臀av | 成人网页在线观看 | 免费黄色高清视频 | 一区二区三区高清在线 | 亚洲精品综合久久 | 一区二区精品视频 | 手机av免费观看 | 99精品视频在线免费观看 | 卡一卡二卡三 | 中文字幕乱码视频 | 亚洲操图| 香蕉久久网 | 亚洲爆乳无码精品aaa片蜜桃 | 久久潮| 欧美日韩国产在线一区 | 色视av| 成人免费国产 | 麻豆传媒网页 | 精品女同一区 | 我和公激情中文字幕 | av老司机在线 | 欧美久久网 | 一本一道久久 | 亚洲女人天堂色在线7777 | 国产特级黄色录像 | 97久久精品视频 | 综合久久2o19 | 亚洲精品久久久久久久久久久 | 色爱五月天 | 奇米第四色在线 | www.欧美 | 农村老女人av | 久久综合成人网 | 性感美女一区二区三区 | 蜜臀久久99精品久久久久久宅男 | 欧美精选一区二区 | 成人av资源站| 自拍偷拍第一页 | 日韩骚片 | 精品一区二区三 | 尤物在线视频观看 | 久热精品在线 | 91极品在线 | 毛片中文字幕 | 青青网站 | 91蜜桃视频在线观看 | 五月天激情啪啪 | 午夜精品av |