python爬取网页遇到521的处理方法

在网页中爬取数据时遇到status code: 521。参考:

https://blog.csdn.net/fm345689/article/details/84980340

https://zhuanlan.zhihu.com/p/25957793

导入execjs库。PyV8仅支持到Python 2.7,不支持Python 3.7。

 1 # -*- coding: utf-8 -*-
 2
 3 import execjs
 4 import re
 5 import requests_html
 6
 7
 8 def parse_js(html):
 9     # 提取js加密函数
10     js_string = re.search(‘(function.*)</script>‘, html).group(1)
11     # 修改js数据,将eval改为return
12     js_string = js_string.replace(‘eval("qo=eval;qo(po);")‘, ‘return po‘)
13     # 提取js函数的参数
14     # window.onload = setTimeout("hu(60)", 200)
15     js_func, js_args = re.search(r‘setTimeout\(\"(.*?)\((.*?)\)\",\s\d+\)‘, html).group(1, 2)
16     # 执行js获取cookie
17     js_result = execjs.compile(js_string).call(js_func, js_args)
18     # 提取 cookie
19     # document.cookie=‘_ydclearance=f530d15ec2689d8c524213bf-aacb-4966-bedd-cc982c6bb4ea-1549534240; expires=Thu, 07-Feb-19 10:10:40 GMT; domain=.66ip.cn; path=/‘; window.document.location=document.URL
20     cookie_str = re.search("cookie=\\‘(.*?);", js_result).group(1)
21     return cookie_str
22
23
24 if __name__ == ‘__main__‘:
25     session = requests_html.HTMLSession()
26     url = ‘http://www.66ip.cn/1.html‘
27     headers = {
28         ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36‘
29     }
30     response = session.get(url, headers=headers)
31     print(response.status_code)
32     cookies = response.cookies
33     cookies_text = ‘;‘.join([‘=‘.join(item) for item in cookies.items()])
34     if response.status_code == 521:
35         headers[‘cookie‘] = parse_js(response.text)
36         response = session.get(url, headers=headers)
37         print(response.status_code)
38     else:
39         pass

原文地址:https://www.cnblogs.com/mcgill0217/p/10355052.html

时间: 2024-10-09 23:58:46

python爬取网页遇到521的处理方法的相关文章

Python爬取网页的三种方法

# Python爬取网页的三种方法之一:  使用urllib或者urllib2模块的getparam方法 import urllib fopen1 = urllib.urlopen('http://www.baidu.com').info() fopen2 = urllib2.urlopen('http://www.sina.com').info() print fopen1.getparam('charset') print fopen2.getparam('charset') #----有些

Python爬取网页信息

Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初始网址,逐层查找链接,直到找到需要获取的内容. 在打开的界面中,点击鼠标右键,在弹出的对话框中,选择“检查”,则在界面会显示该网页的源代码,在具体内容处点击查找,可以定位到需要查找的内容的源码. 注意:代码显示的方式与浏览器有关,有些浏览器不支持显示源代码功能(360浏览器,谷歌浏览器,火狐浏览器等

python爬取网页时返回http状态码HTTP Error 418

问题:urllib.error.HTTPError: HTTP Error 418: 问题描述:当我使用Python的request爬取网页时返回了http状态码为418, 错误描述:经过网上查询得知,418的意思是被网站的反爬程序返回的,网上解释为,418 I'm a teapotThe HTTP 418 I'm a teapot client error response code indicates that the server refuses to brew coffee becaus

python爬取网页数据

python时间戳 将时间戳转为日期 #!/usr/bin/python # -*- coding: UTF-8 -*- # 引入time模块 import time #时间戳 timeStamp = 1581004800 timeArray = time.localtime(timeStamp) #转为年-月-日形式 otherStyleTime = time.strftime("%Y-%m-%d ", timeArray) print(otherStyleTime) python爬

python爬取网页图片

在Python中使用正则表达式,一个小小的爬虫,抓取百科词条网页的jpg图片.下面就是我的代码,作为参考: #coding=utf-8 # __author__ = 'Hinfa' import re import os from urllib import request as req url='https://baike.baidu.com/item/%E5%B9%BF%E5%B7%9E/72101?fr=aladdin' path='Test//百科广州图片2' os.mkdir(path

用Python爬取网页上的小说,让你从此告别书荒!

人生苦短,我用Python.有道爱看小说的小伙伴们,在看小说的期间总会遇到那么一段书荒期,在这段期间想看书却找不到,要么就是要VIP,要么就是下载不了.所以学会爬取网站上的小说是很有必要的,今天就以爬取笔趣阁小说为例,进行网页上小说的爬取.首先当我们打开笔趣阁的网页时,我们会看到很多的小说列表,如下图所示: ? 就拿爬取图上所示的小说来说,我们要进行以下的几个步骤: 爬取小说首先要构建请求表头: ? 然后我们的获取下载链接: ? 接下来我们进行文章内容的爬取: ? 最后我们将爬取来的小说写入到文

python 爬取网页简单数据---以及详细解释用法

一.准备工作(找到所需网站,获取请求头,并用到请求头) 找到所需爬取的网站(这里举拉勾网的一些静态数据的获取)----------- https://www.lagou.com/zhaopin/Python/ 请求头的作用:模拟真实用户进入网站浏览数据-----------headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75

python 爬取网页内的代理服务器列表(需调整优化)

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-08-30 20:38:23 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $Id$ 7 8 import requests 9 from bs4 import BeautifulSoup as bs

Python 爬取网页中JavaScript动态添加的内容(二)

使用 selenium + phantomjs 实现 1.准备环境 selenium(一个用于web应用程测试的工具)安装:pip install seleniumphantomjs(是一种无界面的浏览器,用于完成网页的渲染)下载:http://phantomjs.org/download.html 2.使用 from selenium import webdriver url = 'http://jandan.net/ooxx' driver = webdriver.PhantomJS( ex