Method and system for incremental collection of forum replies

The present application discloses methods and systems for incrementally collecting replies in a forum and belongs to the technical field of collecting network information. The method comprises periodically determining whether there is a newly-established post and a post having new replies in all forum list pages needed to be collected: if yes, extracting a main post and reply information from the newly-established post, and extracting the information of the new replies from the post having new replies. The system comprises a determining device (11) for periodically determining whether there is a newly-established post and a post having new replies in all forum list pages needed to be collected; and an extracting device (12) for extracting a main post and reply information from the newly-established post, and extracting the information of the new replies from the post having new replies. The present application can quickly, accurately and completely collect all main post/replies of a post, so that the drawback that the information of turned pages of a post are missed to be searched or cannot be searched through a general search engine may be overcome.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a 35 USC §371 National Stage application of International Application No. PCT/CN2011/084457 filed Dec. 22, 2011, which claims the benefit of priority to China Patent Application No. 201010618393.4 filed Dec. 22, 2010. The disclosure of each of the prior applications is considered part of and is incorporated by reference in the disclosure of this application.

TECHNICAL FIELD

The present application relates to the technical field of collecting network information, in particular, to methods and systems for incrementally collecting replies in a forum.

BACKGROUND

With the advent of Internet, especially the wide use of various Internet or network forums and communities users or user groups worldwide can freely express and exchange various ideas together. China now has more than one million Internet forums, and 80% of websites in China have independent forums. There are more than 100 million frequent or active Internet users on various network forums in China. Different from other forums, network forums have the characteristics of reaching audience in a wide range of Internet users in a very short time. A particular hot topic posted on such a network forum may very quickly attract the attention tens of thousands of users to post replies and discussions and the posted replies and discussions may form hundreds or thousands of pages in a very short period of time. At this time, the users are interested in not only the content or opinion of the initiator or the contents of the main post but also the opinions on the main post expressed by other users. However, it is difficult to query the replied information in multiple turned pages through a general search engine. Even if sometimes the replied information in the multiple pages can be queried, the time effectiveness is not ideal due to the large data delay. Current forum collection systems merely collect information in the first page of a post, without the information of the replies in remaining pages of the post.

SUMMARY

In view of the drawbacks in the prior art, the present application provides a method and a system for incrementally collecting replies in a forum. The method and the system are capable of quickly, accurately and completely collecting all main post/replies of a post, thus overcoming the drawback in a general search engine that the information in turned pages of a post would be missed or cannot be searched, and the drawback in current forum collection systems that merely collect information in the first page of a post, without the information of the replies of the post.

In order to solve the above technical issues, the following technical solutions are provided.

According to an embodiment of the present application, a method for incrementally collecting replies in a forum is provided, comprising:

(1) determining periodically whether there is a newly-established post or a post with new replies in all forum list pages needed to be collected, according to a URL of a first page of the post and the number of replies to the post;

(2) if it is determined that there is a newly-established post, extracting a main post of the newly-established post and reply information from the newly-established post; if it is determined that there is a post with new replies, calculating an origination of and the number of the new replies to, based on the calculated origination and the calculated number, extract the new replies from the post with new replies.

According to another embodiment of the present application, a system for incrementally collecting replies in a forum is provided, comprising:

a determining device for periodically determining whether there is a newly-established post and a post having new replies in all forum list pages needed to be collected, according to the URL of the first page of the post and the information of the number of replies to the post;

an extracting device for extracting a main post and reply information from the newly-established post, or for the post having new replies, calculating the origination and the number of the new replies, and extracting the information of the new replies from the post having new replies according to the origination and the number of the new replies.

According to the method and the system of the present application, by periodically monitoring a list page, the information of a newly-established post and a post having new replies in the list pages can be acquired in time. Repeated collection is avoided by a quick process of eliminating duplicates according to URL identification and information of the number of replies. The object of quickly collecting replies of a turned page may be achieved by distinguishing different extracting modes of page turning. Therefore, all main post/replies of a post may be quickly, accurately and completely collected. Less than 5% of replies may be missed to be collected and the real time performance may be in the order of minutes.

DETAILED DESCRIPTION

Hereinafter, the present application will be explained in detail with reference to the accompanying drawings in connection with the specific embodiments.

As shown inFIG. 1, a system for incrementally collecting replies in a forum according to an embodiment comprises a determining device11and an extracting device12connected to the determining device11. The determining device11includes a first queuing unit111, a first acquiring unit112, a list page extracting unit113and a determining unit114. The extracting device12includes a second queuing unit121, a scanning unit122, a second acquiring unit123, a content page extracting unit124and a duplicate eliminating unit125.

The determining device11is used for periodically determining whether there is a newly-established post or a post having new replies in all forum list pages needed to be collected, according to the URL of the first page of the post and the number of replies to the post. The first queuing unit111is used for adding the URLs of all forum list pages needed to be collected into a collection queue of list pages. The first acquiring unit112is used for acquiring each URL of a list page from the collection queue of list pages. The list page extracting unit113is used for extracting, for each of the acquired URL of a list page, webpage contents corresponding to the URL of the list page, and extracting the URL of the first page of each post and the number of current replies from the webpage contents. The determining unit114is used for determining whether each post exists in an information list of collected posts according to the URL of the first page of the post. If a post exists in the information list, then the determining unit114continues to determine whether the number of current replies to the post is larger than the number of present replies recorded in the information list of collected posts. If yes, then the determining unit114renders a termination that the post has a new reply and accordingly updates the number of previous replies and the number of present replies of the post in the information list of collected posts. If the post does not exist in the information list of collected posts, the post is treated as a newly-established post and the URL of the first page and the number of current replies are added into the information list of collected posts.

The extracting device12is used for extracting a main post and reply information from the newly-established post. For the post having new replies, the extracting device12is configured to calculate the origination and the number of the new replies, and extract the information of the new replies from the post having new replies according to the calculated origination and the calculated number. The second queuing unit121is used for adding the URL of the first page of the newly-established post and the URL of the post having new replies into a collection queue of content pages. The scanning unit122is used for regularly scanning the collection queue of content pages. The second acquiring unit123is used for acquiring each URL from the collection queue of content pages. The content page extracting unit124is used for extracting webpage contents corresponding to the URL and extracting the main post and/or reply and/or URLs of turned pages from the webpage contents. The duplicate eliminating unit125is used for eliminating a duplicate of the URLs of turned pages extracted from the webpage contents when the page turning mode in the forum is next page turning. The second queuing unit121is further used for adding the URLs of the turned pages, of which the duplicate is eliminated into the collection queue of content pages.

As shown inFIG. 2, a method for incrementally collecting replies in a forum based on the system shown inFIG. 1according to an embodiment comprises the following steps.

Step (1): the determining device11periodically determines whether there is a newly-established post and/or a post having new replies in all forum list pages needed to be collected.

As shown inFIG. 3, the method for the determining according to this embodiment comprises the following steps (a)-(d).

Step (a): the first queuing unit111adds the URLs of all forum list pages needed to be collected into the collection queue of list pages. The list page refers to the one which contains the information such as titles, URL (uniform resource locator), the number of clicks, the number of replies of all posts, but does not contain the specific contents of the posts. For example, the list page of the financial hodgepodge channel of Sohu forum, its URL is:

For another example, the list page of the international forum channel of powerful nation community of People Net, its URL is:

In this embodiment, a collection interval is set for each forum list page needed to be collected. For example, the information for each forum list page is collected every other five minutes. The collection interval for each forum list page is monitored. When a collection interval time for each forum list page expires, the URL of this list page is added into the collection queue of list pages.

Preferably, the refresh interval is dynamically adjusted according to the update frequency of the forum. If the update frequency of the forum is high, the refresh interval is set to be short accordingly; and if the update frequency of the forum is low, the refresh interval is set to be long accordingly. For example, it is preset to collect every other five minutes, if it is found that the update frequency of the forum increases, then the refresh interval is shortened to be three minutes, one minute or less.

The method for calculating the update frequency in a forum has been disclosed in Chinese patent application “method and device for directionally collecting webpage data information” (application number: 201010236363.7), and thus the description thereof is omitted.

Step (b): the first acquiring unit112acquires each URL of the list page from the collection queue of list pages.

In this embodiment, the method for acquiring the URL of the list page from the collection queue of list pages includes a step of regularly scanning the collection queue of list pages (the scanning interval can be set by the user according to the specific application). If the collection queue of list pages is not empty, then the URLs of list pages are acquired in turn from the collection queue of list pages according to a First-In-First-Out order (after the URL is acquired from the queue, the URL will be automatically deleted from the queue), and the friendly access condition of the website of the URLs of the list pages is met.

If URL of a list page does not meet the friendly access condition of the website of the URL of the list page, then the URL of this list page is ignored in this scanning and the URL of the next list page is determined. The URL of this list page is remained to proceed in a subsequent scanning.

The friendly access conditions of the website include quantity restriction of current accesses and interval restriction of accesses. The method for determining whether the friendly access conditions of a web site has been disclosed in Chinese patent application “method and system for capturing webpages from servers of different IPs in website” (application number: 201010546334.0), and thus the description thereof is omitted.

Step (c): the list page extracting unit113acquires webpage contents corresponding to the URL of each list page, and then extracts, from the webpage contents, the URL of the first page of each post and the number of current replies.

According to the each URL of list page, a HTTP request for acquiring the contents corresponding to the URL is sent to the website and the returned webpage contents are received. The method of acquiring the URL of the first page of each post and the current of number replies from the webpage contents is well known in the art, and thus the description thereof is omitted.

Step (d): the determining unit114determines whether each post exists in the information list of collected posts according to the URL of the first page of the post. If the post exists in the information list, then it indicates that the post has been collected and continues to determine whether the number of current replies of the post is larger than the number of current replies recorded in the information list of collected posts. If so, then it determines that the post has a new reply and updates the number of previous replies and the number of present replies of the post in the information list of collected posts. That is, the number of previous replies of the post in the information list of collected posts is replaced with the number of present replies, and the number of present replies of the post in the information list of collected posts is replaced with the number of present replies. If the number of current replies of the post is not larger than the number of current replies recorded in the information list of collected posts, then it indicates that the post has no new reply and this URL is ignored without any subsequent process. If the post does not exist in the information list of collected posts, then it indicates that the post is a newly-established post, and the URL of the first page of this post and the number of current replies are added in the information list of collected posts. The number of previous replies of the post is 0 and the number of present replies of the post is the number of current replies.

The information list of collected posts stores the URLs of first pages of collected posts and the numbers of last replies and present replies of collected posts. The structure of the list is shown as below.

Preferably, the identification information of the URL of the first page of the post is stored in the information list of collected posts, such as MD5 codes. By comparing the identification information, it determines whether the URL of the first page of the post is stored in the information list of collected posts. In this way, the comparing efficiency of URL can be improved.

Step (2): if there is a newly-established post and/or a post having new replies in all forum list pages needed to be collected, the extracting device12operates to extract a main post and reply information from the new posts and extract the information of the new replies from the posts having new replies.

As shown inFIG. 4, the method for extracting according to an embodiment comprises the following steps.

Step (i): in this step, the second queuing unit121operates to add the URL of the first page of the newly-established post and the URL of the post having new replies into a collection queue of content pages.

For a new-established post, if the URL of the first page of the post exists in the collection queue of content pages, the URL of the first page of the post is extracted and the number of present replies to the post recorded in the information list of collected posts is amended to be the number of current replies. The URL of the first page of the post is inserted into the collection queue of content pages. If the URL of the first page of the post does not exist in the collection queue of content pages, the URL of the first page of the post is directly added into the collection queue of content pages.

For a post having new replies, if the page turning mode in the forum of the post is calculation page turning, the URL of the first page of the post having new replies is directly added into the collection queue of content pages. If the page turning mode in the forum of the post is next page turning, the information table of URLs of turned pages of the post is searched out and the last URL of turned page of the post is added into the collection queue of content pages.

The mode of calculation page turning refers to a mode, in which the number of replies of each page is certain. For example, the post of the international channel of powerful nation community of People Net, http://bbs1.people.com.cn/postDetail.do?boardId=6&view=1&id=91384467, is configured in the mode of calculation page turning.

The mode of next page turning refers to a mode, in which the number of replies of each page is uncertain. For example, the post in Tianya by-talk, http://www.Tianya.cn/publicforum/content/free/1/1880805.shtml, is configured in the mode of next page turning.

Step (ii): the collection queue of content pages is regularly scanned by the scanning unit122. The scanning interval can be set by the user according to the specific application.

Step (iii): if the collection queue of content pages is not empty, each URL from the collection queue of content pages will be acquired by the second acquiring unit123. After the URL is acquired from the collection queue, the URL is automatically deleted from the collection queue.

In this embodiment, the method of acquiring URLs from the collection queue of content pages by the second acquiring unit123is identical to the method of acquiring URLs from the collection queue of content pages by the first acquiring unit112, and the description thereof is omitted.

Step (iv): the content page extracting unit124operates to acquire webpage contents corresponding to the acquired URL, extract the main post and/or reply and/or URLs of turned pages from the webpage contents and add the URLs of turned pages into the collection queue of content pages in this step.

In this embodiment, one specific implementation for extracting the main post and/or reply is as follows.

If the URL is the URL of the first page of the post and is collected for the first time, the post is a newly-established post and the information of the main post and replies are extracted from the webpage contents corresponding to the URL. Specifically, it is firstly determined whether the styles of the main post and replies are consistent. If so, the information is extracted one by one in the same way, and the first extracted information is used as the main post, and the other information are used as replies. If not, the information of the main post is firstly extracted in accordance with the preset rules, and the information of each reply is then extracted. It is manually set to determine whether the styles of the main post and replies are consistent, and the preset rule is a keyword or regular expression set manually.

If the URL is the URL of the first page of the post but is not collected for the first time, the post is a post having new replies, the origination of replies S′Fromand the number of the new replies C′ParseCountare calculated according to the following formulae, and C′ParseCountnew replies are extracted from the origination of new replies S′From.

SFrom′={RPreNum,NPerPage⁢⁢includes⁢⁢main⁢⁢postRPreNum+1,NPerPage⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post⁢⁢CParseCount′=RCurNum-RPreNum
where, RPreNumrepresents the number of the replies to the post of the previous collection, RCurNumrepresents the number of current replies to the post, and NPerPagerepresents the number of replies to the post per page.

If the URL is not the URL of the first page of the post, it is further determined whether it is the URL of an overlapping page. The overlapping page refers to the page in which the information are all information of replies and part of replies are new replies. It is determined that it is an overlapping page if the page index corresponding to the URL is identical to that of the page that should be currently extracted. The page index of the page that should be currently extracted is calculated by rule of:

PBegin={ceil⁡(RPreNum+1NPerPage),NPerPage⁢⁢includes⁢⁢main⁢⁢postceil⁡(RPreNumNPerPage),NPerPage⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post.
where, PBeginrepresents the page index of the page which should be currently extracted, and ceil represents the operation of rounding up.

If it is an overlapping page, the origination S″Fromand the number C″ParseCountof new replies are recalculated according to the following formulae, and C″ParseCountnew replies are extracted from the origination of new replies S″From.

SFrom″={RPreNum⁢⁢%⁢⁢NPerPage+1,NPerPage⁢⁢includes⁢⁢main⁢⁢postRPreNum⁢⁢%⁢⁢NPerPage,NPerPage⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post⁢⁢⁢CParseCount″={RCurNum-RPerNum,this⁢⁢page⁢⁢is⁢⁢last⁢⁢pageNPerPage-SFrom″,this⁢⁢page⁢⁢is⁢⁢not⁢⁢last⁢⁢page
where, “%” represents the operation of taking the remainder.

If the URL is neither the URL of the first page of the post, nor the URL of the overlapping page, i.e., all the contents of this page are new replies, the origination S″Fromand the number C″ParseCountof new replies are recalculated according to the following formulae, and C″ParseCountnew replies are extracted from the origination of new replies S″From.

The method of extracting the URL of turned page from webpage content is as follows.

{circle around (1)} If the page turning mode in the forum is calculation page turning and the URL refers to the first page of the post, the beginning and ending page indexes of the turned page (i.e., the beginning and ending page indexes of the pages containing the new replies) are calculated according to the following formulae. If the URL does not refer to the first page of the post, the URLs of turned pages will not be extracted.

PBegin={ceil⁡(RPreNum+1NPerPage),NPerPage⁢⁢includes⁢⁢main⁢⁢postceil⁡(RPreNumNPerPage),NPerPage⁢⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post⁢⁢PEnd={ceil⁡(RCurNum+1NPerPage),NPerPage⁢⁢includes⁢⁢main⁢⁢postceil⁡(RCurNumNPerPage),NPerPage⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post⁢⁢SFrom={RPreNum⁢⁢%⁢⁢NPerPage+1,NPerPage⁢⁢includes⁢⁢main⁢⁢postRPreNum⁢⁢%⁢⁢NPerPage,NPerPage⁢⁢does⁢⁢not⁢⁢include⁢⁢main⁢⁢post⁢⁢⁢If⁢⁢SFrom=0⁢⁢⁢and⁢⁢⁢RPreNum>0,⁢⁢then⁢⁢⁢SFrom=NPerPage,⁢⁢PBegin=PBegin+1.
where, PBeginand PEndrepresent the beginning and ending page indexes of the turned pages, respectively, SFromrepresents the origination of the new replies, and all the replies from the origination to the ending page index are new replies. After the beginning and ending page indexes of the turned pages are calculated according to the above formulae, in combination of preset rules of URLs of turned pages, all the URLs of turned pages are joined.

The specific method for joining URL includes a step of joining the URLs of turned pages according to the configured rules of page turning, the beginning page index of turned pages, and the base number of turned pages. In this embodiment, according to the configured rules of page turning, the URLs of turned pages are divided to three parts, wherein the first and third parts, strBeforePage and strAfterPage are invariant parts, and the second part nPageUp is a variant part. Pseudo codes of joining process of URLs of turned pages is the following:

The URL of a post in the international forum channel of powerful nation community of People Net is:

Its rule of page turning is:

The page index of the first page nFirstPostPageIndex is 1, the base number of turned pages nPageUsBaseNum is 1, NPerPageis 20.

According to the rule of page turning, the first and the third parts of turned pages are extracted as:

According to the above information, if a post has 210 replies when the post is firstly collected, then there are 10 joined URLs of turned pages:

The URL of a post in Baidu Post Bar is:

Its rule of page turning is

The page index of the first page is 0, the base number of turned pages nPageUsBaseNum is 30. According to the rule of page turning, the first part of turned pages is extracted as:

The third part is blank.

According to the above information, if a post has 210 replies when the post is firstly collected, then there are 6 joined URLs of turned pages:

Finally, all the joined URLs of turned pages are treated to be complete URLs with domain information and the treated URLs of turned pages are added into a collection queue of content pages.

{circle around (2)} If the page turning mode in the forum is next page turning, the URLs of turned pages are extracted from the webpage contents. If there is no URL of turned page in the webpage contents, it indicates that this page is the last page and there is no turned page.

For the mode of next page turning, after the URLs of turned pages are extracted from the webpage contents and before they are added are added into a collection queue of content pages, the duplicate eliminating unit125eliminates a duplicate of URLs of turned pages. The specific process is as follows.

The information table of URLs of turned pages is searched to determine whether the post corresponding to the URL of a turned page exists in the information table. If not, the information of turned pages of the post corresponding to the URL of the turned page is inserted into the information table and the URL of the turned page is inserted into a collection queue of content pages. Otherwise, it continues to determine whether the page index of the current turned page of the post is larger than the page index of the turned pages of the post recorded in the information table of URLs of turned pages. If yes, the page index of the turned pages of the post is updated to be the page index of the current page in the information table of URLs of turned pages and the URL of the turned page is added into a collection queue of content pages. If not, the page index of the turned pages of the post does not need to be updated in the information table of URLs of turned pages and the URL of turned pages may be directly deleted.

The information table of URLs of turned pages stores the URL of the first page of post (or identification information), the page indexes of currently collected turned pages, and the last reply position on the page currently collected, URL of currently collected turned pages. The header structure of the table is shown in the following.

URL of the firstpage indexesthe last reply positionURLs ofpage of post (orof turnedturned pagesidentificationpagesinformation)

Various modifications and variations to the present application can be readily made by those skilled in the art without departing from the spirit and range of the present application. Thus, the application intends to contain these modifications and variations, if these modifications and variations are defined within the scope of the following claims and their equivalents.