c 抓取网页数据(百度中搜索一个使用webmagic:数据库Mongodb驱动使用)
优采云 发布时间: 2022-03-18 15:19c 抓取网页数据(百度中搜索一个使用webmagic:数据库Mongodb驱动使用)
当我们在百度搜索的时候,会有一个嵌入的查询页面:
这是通过ajax技术加载的,因为是js渲染,所以页面源码中不收录这个信息。
通过火狐的Firebug*敏*感*词*网络请求,发现请求是到百度opendata,结果返回一个收录100条数据的json
这样,通过分析请求字符串的参数,自定义请求,就可以让爬虫直接爬取数据。
获得数据后,您需要对其进行解析。每个请求将返回 100 条数据。现在您需要将这 100 条数据全部删除,并将它们存储在 Mongodb 数据库中。
爬虫使用 webmagic:
数据库MongoDB驱动使用
行家坐标:
us.codecraft
webmagic-extension
0.5.2
org.mongodb
mongo-java-driver
2.7.3
Webmagic爬虫框架使用参考:
我在爬取过程中自定义了PageProcessor,将数据解析并存储在Mongodb中,并使用爬虫框架自带的FilePipeline将数据持久化到磁盘文件中。
每个请求返回100条数据,需要分析分离成单独的json字符串,然后一一插入。
插入数据时,还要判断数据是否重复。
json格式的字符串可以直接存入数据库。
Mongo mongo = new Mongo();
DB db = mongo.getDB("shixinTest");
DBCollection q=db.getCollection("shixinTest1");
// new BasicDBObject();
// 通过JSON.parse构造DBObject
DBObject query = (BasicDBObject) JSON.parse(JsonString)
q.save(query);
json字符串存储在mongodb数据库中:
爬虫实现部分是:抓取网络json数据,存入mongodb(2)