python - Problèmes rencontrés lors de l'exploration de la liste d'articles en arrière-plan Csdn après que le robot d'exploration simule la connexion
ringa_lee
ringa_lee 2017-05-18 10:51:59
0
2
1081

Le robot d'exploration s'est effectivement connecté, car je peux explorer les informations personnelles et elles peuvent être capturées, mais l'URL dans l'image ci-dessous ne peut pas être capturée :

L'URL est : http://write.blog.csdn.net/postlist, qui est votre backend csdn.

Je posterai le code, c'est py2.7

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
import requests

class CSDN(object):
    def __init__(self, headers):
        self.session = requests.Session()
        self.headers = headers
    def get_webflow(self):
        url = 'http://passport.csdn.net/account/login'
        response = self.session.get(url=url, headers=self.headers)
        soup = BeautifulSoup(response.text, 'html.parser')
        lt = soup.find('input', {'name': 'lt'})['value']
        execution = soup.find('input', {'name': 'execution'})['value']
        soup.clear()
        return (lt, execution)
    def login(self, account, password):
        self.username = account
        self.password = password
        lt, execution = self.get_webflow()
        data = {
            'username': account,
            'password': password,
            'lt': lt,
            'execution': execution,
            '_eventId': 'submit'
        }
        url = 'http://passport.csdn.net/account/login'
        response = self.session.post(url=url, headers=self.headers, data=data)
        if (response.status_code == 200):
            print('正常')
        else:
            print('异常')
    def func(self):
        headers1={
            'Host':'write.blog.csdn.net',
            'Upgrade-Insecure-Requests':'1',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
        }
        response=self.session.get(url='http://write.blog.csdn.net/postlist',headers=headers1,allow_redirects=False)
        print response.text
if __name__ == '__main__':
    headers = {
        'Host': 'passport.csdn.net',
        'Origin': 'http://passport.csdn.net',
        'Referer':'http://passport.csdn.net/account/login',
        'Upgrade-Insecure-Requests':'1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',
    }
    csdn = CSDN(headers=headers)
    account = ''
    password = ''
    csdn.login(account=account, password=password)
    csdn.func()

La sortie du code ci-dessus est

正常
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://passport.csdn.net?service=http://write.blog.csdn.net/postlist">here</a>.</h2>
</body></html>
ringa_lee
ringa_lee

ringa_lee

répondre à tous(2)
小葫芦

Étant donné que cette adresse renvoie un saut 302, vous devez continuer la requête en fonction de l'emplacement de l'en-tête renvoyé, puis analyser le contenu renvoyé pour continuer le traitement. Le navigateur vous aidera à effectuer ces 302 sauts et à exécuter les js renvoyés et autres. contenu et le capturer manuellement. Vous devez le gérer vous-même.

迷茫

Utilisez simplement des cookies

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal