python - 爬虫获取所有数据的思路是什么
ringa_lee
ringa_lee 2017-04-18 10:19:45
0
6
623

比如一个网站有下一页,我要怎么能把所有下一页爬完呢,用递归吗,递归深度不会有限制吗,初学,希望得到指点

ringa_lee
ringa_lee

ringa_lee

répondre à tous(6)
大家讲道理

Récursion, file d'attente de messages, stockage des pages explorées (redis, base de données)

巴扎黑

Si toutes les données auxquelles vous faites référence sont toutes des données sous un petit nom de domaine et que vous ne souhaitez pas étudier les principes en détail, alors apprenez Scrapy.

Si toutes les données auxquelles vous faites référence correspondent à l'intégralité des données du réseau et que vous souhaitez comprendre si l'exploration s'effectue d'abord en largeur ou en profondeur, etc., alors vous devez d'abord disposer de plus de 10 000 serveurs.

刘奇

S'il s'agit du même site Web, utilisez la récursion pour l'explorer. Pourquoi le même site Web ne peut-il pas être exploré jusqu'à la fin ?

巴扎黑

Si la structure du site Web est simple et répétitive, vous pouvez d'abord analyser le modèle des URL des numéros de page, puis obtenir le nombre total de pages directement à partir de la première page, puis construire manuellement les URL des autres pages.

洪涛

Tout d'abord, parlons brièvement de l'idée du crawling. Si le lien de la page est très simple, comme www.xxx.com/post/1.html, vous pouvez écrire une récursivité ou une boucle pour crawler

Si le lien de la page est inconnu, vous pouvez demander à la page analysée d'analyser le lien de la balise, puis continuer l'exploration. Dans ce processus, vous devez enregistrer les liens explorés lors de l'exploration de nouveaux liens. Vérifiez si cela a été le cas. analysé avant, puis analysé de manière récursive

Idées d'exploration : Explorer l'URL -> Analyser la nouvelle URL dans le contenu analysé -> Explorer l'URL ->....-> de récursion lors de la création d'un nouveau lien

Enfin, il existe un framework de robot d'exploration très puissant dans le monde python. Il encapsule essentiellement toutes les routines de robot d'exploration courantes. Vous pouvez maîtriser le portail avec un peu d'apprentissage

.
阿神

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.io.FileUtils;



public class SpiderDemo {
    public static void main(String[] args) throws IOException {
//        URL url = new URL("http://www.zhongguoxinyongheimingdan.com");
//        URLConnection connection = url.openConnection();
//        InputStream in = connection.getInputStream();
//        File file = new File("F://a.txt");
//        FileUtils.copyInputStreamToFile(in, file);
        File srcDir = new File("F://a.txt");
        String str = FileUtils.readFileToString(srcDir, "UTF-8");
        String[] str1 = str.split("href=");
        for (int i = 3; i < str1.length-1; i++) {
            URL url = new URL("http://www.zhongguoxinyongheimingdan.com"+str1[i].substring(1, 27));
            File f = new File("F://abc//"+str1[i].substring(2, 22));
            if(!f.exists()){
            f.mkdir();    
            File desc1 = new File(f,str1[i].substring(1, 22)+".txt");
            URLConnection connection = url.openConnection();
            InputStream in = connection.getInputStream();
            FileUtils.copyInputStreamToFile(in, desc1);
            String str2 = FileUtils.readFileToString(desc1, "UTF-8");
            String[] str3 = str2.split("\" src=\"");
            for(int j = 1;j<str3.length-2;j++){
                URL url1 = new URL(str3[j].substring(0, 81));
                URLConnection connection1 = url1.openConnection();
                connection1.setDoInput(true);
                InputStream in1 = connection1.getInputStream();
                File desc2 = new File(f,str3[j].substring(44,76)+".jpg");
                FileUtils.copyInputStreamToFile(in1, desc2);
            }
            }
            }
        }
    
}

Code simple pour enregistrer toutes les photos du site Web de la liste noire de crédit de Chine sur le site local Le site Web lui-même est simple ! Mais le site s'est écrasé sur place et j'étais ivre !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!