爬取某个网站上所有页面,并根据页面内容正则匹配,存入数据库_百度知 ...
发布网友
发布时间:2023-12-28 20:36
我来回答
共2个回答
热心网友
时间:2024-02-27 01:56
正则匹配可以直接在拿去到数据的时候直接用代码来实现,参考正则语法。
导入数据库有两种方法
1.先把拿到的数据保存到json或者csv文件,然后用文件导入到数据库
2.直接用代码写相应的插入语句,把拿到的数据插入到对应表中。参考sql语法
热心网友
时间:2024-02-27 01:53
不知道你用什么编程语言,我用的java的给你参考一下。用到了apache的httpComponents下的包,你也可以用java自带的URLConnection。
//根据网址url和网页编码获取网页源代码
private String getHTML(String url,String encode) {
HttpPost httpPost = new HttpPost(url);
CloseableHttpResponse response = null;
StringBuilder sb = new StringBuilder();
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is, encode));
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
EntityUtils.consume(entity);
response.close();
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
return sb.toString();
}
至于正则表达式匹配,这个要根据你匹配的内容来定义正则表达式
//定义正则表达式
Pattern pattern=Pattern.compile("");
//需要匹配的字符串
String s="";
Matcher matcher=pattern.matcher(s);
//每次查找到匹配的字符串时,输出匹配结果
while (matcher.find()){
System.out.println(matcher.group());
}