반응형
네이버 카페의 글 제목, 작성자 닉네임, 작성일을 파싱하는 코드입니다.
로그인 절차가 필요 없습니다.
게시판 페이지를 파싱합니다.
게시판 링크는 게시판 링크 우클릭해서 링크 복사 해서 /ArticleList.nhn 부분부터 복사하여
카페 링크 뒤에 붙이시면 됩니다.
추가 인자값들은 아래 코드에서 확인하세요. (userDisplay 이나 search.page 등)
simple_html_dom.php 파일을 필요로 합니다:
https://simplehtmldom.sourceforge.io/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?php
/*ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);*/
include($_SERVER['DOCUMENT_ROOT'].'simple_html_dom.php');
//simple_html_dom.php 파일 수정 필요합니다.
//https://mandu-mandu.tistory.com/358
function naver_cafe_article_parser($page_no){
//작성자 M4ndU
//카페 url
//카페 링크 aaaaa처리
//search.clubid, search.menuid 0 처리
//하였기 때문에 본인 카페 링크및 게시판 확인하셔서 변경하셔야합니다.
$url = "https://cafe.naver.com/aaaaa/ArticleList.nhn?search.clubid=000000000&search.boardtype=L&search.menuid=00&search.marketBoardTab=D%&search.specialmenutype=&userDisplay=50&search.page=".$page_no;
$html = file_get_html($url);
$board = $html->find('div[class=article-board m-tcol-c]');
foreach ($board[1]->find('tr') as $article) {
$article_title_link = $article->find('a[class=article]')[0];
$article_title = $article_title_link->plaintext;
$article_link = $article_title_link->href;
$article_publisher = $article->find('td[class=p-nick]')[0]->plaintext;
$article_date = $article->find('td[class=td_date]')[0]->innertext;
if ($article_title == "") {
continue;
}
echo "<tr>";
echo "<td>".$article_title."</td>";
echo "<td>".$article_publisher."</td>";
echo "<td>".$article_date."</td>";
echo "<td> https://cafe.naver.com/aaaaa".$article_link."</td>"; //카페링크 aaaaa처리하였음. 본인이 변경하세요.
echo "</tr>";
}
}
?>
<!DOCTYPE html>
<html lang="kr" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<table class="table">
<thead>
<th>글제목</th>
<th>작성자</th>
<th>등록일시</th>
<th>링크</th>
</thead>
<?php
for ($i=1; $i<10 ; $i++) { // 파싱할 게시판의 최대 페이지를 고려하세요.
naver_cafe_article_parser($i);
}
?>
</table>
</body>
</html>
|
cs |
반응형
'Project > Programming' 카테고리의 다른 글
Node.js로 디스코드 봇 만들기(1) - 봇 생성부터 테스트까지 (2) | 2020.04.21 |
---|---|
[batch] 배치파일로 악성코드 만들기 (0) | 2020.01.19 |
NYPC 2019 예선 문제 풀이 (2) | 2019.08.16 |
[HTML/PHP] reCAPTCHA v3 적용하기 (0) | 2018.12.28 |
[Python] Python으로 카카오톡 봇 만들기 (3) - 반복적 동일 요청 막기 (도배 방지) (33) | 2018.04.05 |