Home > Backend Development > PHP Tutorial > How to collect article pages of WeChat public accounts using PHP

How to collect article pages of WeChat public accounts using PHP

韦小宝
Release: 2023-03-17 22:48:01
Original
3602 people have browsed it

Let me analyze how to use PHP to write a method of collecting WeChat public account articles and PHP code will be explained in detail. Friends who are interested in PHP can learn 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 pieces of bulk content;

3. The article address has a validity period;

4. It is said that you need to change the IP for batch collection;

There is no way through the method in my previous article For these problems, although the construction of the collection system is not as simple as writing rules for traditional collectors to crawl. 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=83d74818b4a0c10ef286b33bb7deb73226125f866ddb 5b2781166066a69afef3705eabdb3b85&scene=4#wechat_redirect

3. Complete real address:

Https: //##mp.weixin.qq.com/s? biz = mjm5ndawmta2ma == & mid = 2695729619 & IDX = 1 & SN = 8BE0B6BD0210DF20F7371F & C & C HKSM = 83D74818B4A0C10EF286B33bb7Deb73226125F866DDB5B2781166069AFEF3705EABDB3B85 & Scene = 37 & KEY = C81D77727118A0E6CE32BE2D 9DCAA2A7436AEBA2C1D47A20D02194D1C944A8286A8EDED93495EEADD05DA4 12 BBFAA638A379750AAA4CF5C00E4D785710D9736C72770A57775a5a5a5a5a5a5a5a57a5 15C23FF2400 & Ascene = 3 & uin = mzuyotiynq%3d%3D & DeviceType =iOS10.1.1&version=16050120&nettype=WIFI&fontScale=100&pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%3D&wx_header=1

The above 3 addresses are the addresses of the same article. If you obtain them from different locations, you will get completely different 3 addresses. results.

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);
?>
Copy after login


2. Useful information in the source code:

1) Original content :

The original content is contained in a

tag, 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];
?>
Copy after login


The beginning of the regular pattern identifies

, and the end identifies

Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template