Home  >  Article  >  Backend Development  >  How to identify python crawler

How to identify python crawler

silencement
silencementOriginal
2019-05-22 18:03:225084browse

How to identify python crawler

1. Input verification code

This kind of verification code is mainly passed by the user Enter the letters, numbers, Chinese characters, etc. in the picture for verification. As shown below

How to identify python crawler


##Solution idea: This is the simplest one, as long as you identify Then fill in the content inside the input box. This recognition technology is called OCR. Here we recommend using Python’s third-party library, tesserocr. For the verification code without any background influence, as shown in Figure 2, you can identify it directly through this library. However, for verification codes with noisy backgrounds, the direct recognition rate will be very low. When encountering this kind of situation, we need to process the image first, grayscale the image first, and then binarize it, and then recognition, so that the recognition rate will be greatly improved.

2. Sliding verification code

How to identify python crawler

##Solution: This kind of verification code is a bit more complicated, but there are corresponding methods. What we directly think of is to simulate the behavior of a person dragging the verification code, click the button, and then see the location of the gap, and finally drag the puzzle to the gap location to complete the verification.

Step one: Click the button. Then we found that the gap and the puzzle did not appear when you did not click the button, but appeared after you clicked it. This provided us with inspiration to find the location of the gap.

Step 2: Drag to the gap position. We know that the puzzle should be dragged to the gap, but if this distance is expressed in numerical values? Through the phenomenon we observed in the first step, we can find the location of the gap. Here we can compare the pixels of the two pictures and set a benchmark value. If the difference at a certain position exceeds the benchmark value, then we have found the different positions of the two pictures. Of course, we start from the right side of the puzzle. Start from the side and go from left to right, and end when you find the first different position. This position should be the left of the gap, so we can use selenium to drag to this position. Another question here is how to automatically save these two pictures? Here we can first find the label, then get its location and size, then top, bottom, left, right = location['y'], location['y'] size['height'] location['x'] size['width'] , then take a screenshot, and finally cut out the image and fill in these four positions. For specific usage, you can view the selenium documentation. Cut out a picture before clicking the button, and then cut out a picture after clicking the button. When dragging at the end, you need to simulate human behavior, first accelerating and then decelerating. Because this kind of verification code has behavioral characteristics detection, it is impossible for a person to keep a constant speed, otherwise it will be judged as a machine dragging, so it will not pass the verification.

Related learning recommendations: python tutorial

The above is the detailed content of How to identify python crawler. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn