Home  >  Article  >  Backend Development  >  How to obtain WeChat public account article page

How to obtain WeChat public account article page

墨辰丷
墨辰丷Original
2018-05-17 09:45:505136browse

Let me analyze how to use PHP to write a method of collecting WeChat public account articles and explain the code in detail. Friends who need it can learn from it.

There are several problems in collecting historical messages of public accounts through Sogou search:

1. There is a verification code;

2. The historical message list only has the latest 10 group messages;

3. The article address has a validity period;

4. It is said that batch collection requires changing IP;

There are no such problems through the method in my previous article, although the collection system The construction is not as simple as traditional collectors, just write the rules and crawl them. However, the efficiency of batch collection after being set up once is still acceptable. Moreover, the collected article addresses are permanently valid, and all historical messages of a public account can be collected.
Let’s start with the link address of a public account article:

1. Copy the link address from the menu in the upper right corner of WeChat:

http:/ /mp.weixin.qq.com/s/fF34bERZ0je_8RWEJjoZ5A

2. The address obtained from the historical message list:

http://mp. weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=2695729619&idx=1&sn=8be0b6bd0210cee0d492ebdf20f7371f&chksm=83d74818b4a0c10ef286b33bb7deb73226125f866ddb5 b2781166066a69afef3705eabdb3b85&scene=4#wechat_redirect

##3. Complete real address:

https://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=2695729619&idx=1&sn=8be0b6bd0210cee0d492ebdf20f7371f&chksm=83d74818b4a0c10ef286b33bb7deb7322612 5f866ddb5b2781166066a69afef3705eabdb3b85&scene=37&key=c81d77271180a0e6ce32be2d9dcaa2a7436aeba2c1d47a20d02194d1c944a8286a8eded93495eeadd05da412bbfaa 638a379750aeaa4cf5c00e4d7851c5710d9b9736b80e3c72770a57a515c23ff2400&ascene=3&uin=MzUyOTIyNQ==&devicetype=iOS10.1.1&version=16050120&nettype =WIFI&fontScale=100&pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4=&wx_header=1


The above three addresses are the addresses of the same article. If obtained from different locations, three completely different results will be obtained.

Like the historical message page, WeChat has a mechanism for automatically supplementing parameters. The first address is obtained by copying the link and seems to be a disguised encoding. In fact, it’s useless and we won’t consider it. The second address is the link address obtained from the json article list of historical messages through the method introduced in the previous article. We can save this address to the database. Afterwards, the article content can be obtained from the server through this address. After the parameters are added to the third link, the purpose is to allow the reading js in the article page to obtain the json result of the reading likes. In the method of our previous article, the article page is opened and displayed by the client. Because of these parameters, the js in the article page automatically obtains the reading volume, so we can obtain the reading volume of this article through the proxy service. .

The content of this article is to study in detail how to obtain article content and other useful information based on the method introduced in the previous article of this column.

(list of articles saved in my database, some fields)

1. Get the source code of the article:

You can read the article source code into a variable through the PHP function file_get_content(). Since the source code of the WeChat article can be opened from the browser, I will not paste it here to avoid wasting page space.

<?
//$content_url 变量的值为文章地址
$html = file_get_contents($content_url);
?>

2. Useful information in the source code:

1) Original content:

The original content is contained in a cfd680454c127ace0ad40a8afa2cb84a94b3e26ee717c64999d7867364b1b4a3 tag and is obtained through the php code:

<?
preg_match_all("/id=\"js_content\">(.*)<script/iUs",$html,$content,PREG_PATTERN_ORDER);
$content = "<p id=&#39;js_content&#39;>".$content[1][0];
?>

The beginning of the regular pattern identifies cfd680454c127ace0ad40a8afa2cb84a, and the end identifies