Python爬虫——模拟登陆爬取csdn页面

模拟登陆爬取csdn页面信息(爬取发表的博文目录)

具体步骤:

登录地址:https://passport.csdn.net/account/login?ref=toolbar

Python爬虫——模拟登陆爬取csdn页面_第1张图片

1.首先输入一个错误的信息

然后打开抓包工具(本人使用的是Fiddler抓包工具),抓取提交的包的信息

Python爬虫——模拟登陆爬取csdn页面_第2张图片

Python爬虫——模拟登陆爬取csdn页面_第3张图片

可以知道需要post的表单信息有五个

uesename

password

it

execution

_eventId


2.审查登录页面

Python爬虫——模拟登陆爬取csdn页面_第4张图片

通过分析代码可以知道

lt , execution ,_eventId 这些值都是可以从页面上直接提取


3.获取登录界面内容提取需要提交的表单参数值

获取lt,execution,_eventld的值


4.post提交表单得到登陆后的cookie值


5.访问博客目录页面



具体代码:

# _*_ coding:utf-8 _*_
#模拟登陆爬取csdn网页内容

import requests
from bs4 import BeautifulSoup
import time

#username=asdasdasd&password=asdasdasdas<=LT-2064548-xlB3STfq7yF1kVhiJ01pwpnNe1dQru&execution=e2s1&_eventId=submit
#username=asdasdasd&password=sdadasdasdasda<=LT-2064574-m0tIdhpf17TuxHEstJHa0RUIGK1PbB&execution=e2s2&_eventId=submit

def loginPages():
    url = "https://passport.csdn.net/account/login?ref=toolbar"
    # 请求报头
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
    }
    #创建session保存cookie
    session = requests.session()
    #获取响应内容
    html = session.get(url,headers=headers).text
    #使用lxml格式
    bs = BeautifulSoup(html,"lxml")
    #获取lt值
    lt = bs.find("input",attrs={"name":"lt"}).get("value")
    print lt
    #获取execution值
    ex = bs.find("input",attrs={"name":"execution"}).get("value")
    print ex

    #创建data表单数据
    data = {
        "username":"你的用户名",
        "password":"你的密码",
        "lt": lt,
        "execution" : ex,
        "_eventId":"submit",
    }
    #获取登录cookie值
    session.post(url,data=data,headers=headers)

    #获取登录后页面
    #http://write.blog.csdn.net/postlist
    response = session.get("http://write.blog.csdn.net/postlist",headers=headers).text
    #print response

    #提取页面博文目录列表信息
    bs2 = BeautifulSoup(response,"lxml")
    links = bs2.find_all("a",attrs={"target":"_blank"})
    for title in links:
        print title.get_text()



if __name__ == "__main__":
    loginPages()

结果:

Python爬虫——模拟登陆爬取csdn页面_第5张图片




你可能感兴趣的:(【20】Python)