想要采集目标网站的信息,发现有些信息是要登陆后才能采集的。下面用python pycharm django来尝试采集。
# 登陆后采集信息
def Get_Session(URL,DATA,HEADERS):
'''保存登录参数'''
ROOM_SESSION = requests.Session()
ROOM_SESSION.post(URL,data=DATA,headers=HEADERS)
return ROOM_SESSION
#登陆测试
def login_test(request):
LOGIN_URL = 'http://www.xxxxx.cn/company/ajax_company_login' # 请求的URL地址
DATA = {
"_token": 'bWuMzCN2omYcDqPXJUikxxxxxxxxxx',
"username": 'your name',
"password": 'your pass',
"remember": 'on'
} # 登录系统的账号密码,也是我们请求数据
HEADERS = {
'Accept': '*/*',
'Connection': 'keep-alive',
'Host': 'www.xxxxx.cn',
'Origin': 'http://www.xxxxx.cn',
'Referer': 'http://www.xxxxx.cn/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400',
'Accept-Encoding': 'gzip,deflate',
'Accept-Language': 'zh-CN,en-US;q=0.8',
'X-Requested-With': 'com.uc.infoflow',
'Cookie': 'remember_company_xxxxxxxxxxxxm_lpvt_f4e9422e12d807da4b0a9821ad5ed670=1583376760'
}
# 登陆并获取SESSION
SESSION = Get_Session(LOGIN_URL, DATA, HEADERS)
# 保存session后再次请求对应的地址
# 通过会话来访问需要登陆的页面
RES2 = SESSION.get("http://www.xxxxx.cn/resume_xxxxx.html")
print(RES2.text)
return render(request, 'login_test.html',{"result":RES2.text})
第1次测试HEADERS只写了User-Agent,发现不能正常登陆,只到把Cokkie加上才可以了,数据来源可以使用chrome内核的浏览器获取信息,如图: