Maison  >  Questions et réponses  >  le corps du texte

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

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_leeringa_lee2690 Il y a quelques jours1023

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰2017-05-18 10:53:59

    É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.

    répondre
    0
  • 迷茫

    迷茫2017-05-18 10:53:59

    Utilisez simplement des cookies

    répondre
    0
  • Annulerrépondre