Python 爬虫从入门到放弃

添加headers参数,来模拟浏览器的行为

import urllib.request
import urllib.parse
def get_page():
    url='http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LcN2z'
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
    #在python中的Header是元组
    data={
        'usersname':'StrivePy',
        'password':'xxx'
    }
    postdata=urllib.parse.urlencode(data).encode('utf-8')
    req=urllib.request.Request(url=url,data=postdata,headers=headers)
    res=urllib.request.urlopen(req)
    page_source=res.read().decode('gbk')
    print(page_source)
    url1='http://bbs.chinaunix.net/thread-4263876-1-1.html'
    res1=urllib.request.urlopen(url=url1)
    page_source1=res1.read().decode('gbk')
    print(page_source1)
if __name__=="__main__":
    get_page()

使用cookie模拟浏览器行为

import urllib.request
import urllib.parse
import http.cookiejar
def get_page():
    url='http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LcN2z'
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
    data={'username':'****','password':'****'}
    postdata=urllib.parse.urlencode(data).encode('utf-8')
    req=urllib.request.Request(url=url,data=postdata,headers=headers)
    #创建cookieJar对象
    cjar=http.cookiejar.CookieJar()
    #以cookieJar对象为参数创建Cookie
    cookie=urllib.request.HTTPCookieProcessor(cjar)
    #以cookie对象为参数创建Opener对象
    opener=urllib.request.build_opener(cookie)
    #将opener安装位全局,覆盖urlopen函数,也可以临时使用opener.open()函数
    urllib.request.install_opener(opener)
    res=urllib.request.urlopen(req)
    page_source=res.read().decode('gbk')
    print(page_source)
    url1='http://bbs.chinaunix.net/thread-4263876-1-1.html'
    res1=urllib.request.urlopen(url=url1)
    page_source1=res.read().decode('gbk')
    print(page_source1)
if __name__=="__main__":
    get_page()

你可能感兴趣的:(网络安全,爬虫)