Python获取网页Html文本
Python爬虫基础
1.获取网页文本
通过urllib2包,根据url获取网页的html文本内容并返回
#coding:utf-8
import requests, json, time, re, os, sys, time
import urllib2 #设置为utf-8模式
reload(sys)
sys.setdefaultencoding( "utf-8" ) def getHtml(url):
response = urllib2.urlopen(url)
html = response.read()
#可以根据编码格式进行编码
#html = unicode(html,'utf-8')
return html
url = 'https://www.cnblogs.com/'
print getHtml(url)
或者
def getHtml(url):
#使用将urllib2.Request()实例化,需要访问的URL地址则作为Request实例的参数
request = urllib2.Request(url)
#Request对象作为urlopen()方法的参数,发送给服务器并接收响应的类文件对象
response = urllib2.urlopen(request)
#类文件对象支持文件对象操作方法
#如read()方法读取返回文件对象的全部内容并将其转换成字符串格式并赋值给html
html = response.read()
#可以根据编码格式进行编码
#html = unicode(html,'utf-8')
return html url = 'https://www.cnblogs.com/'
print getHtml(url)
再添加ua和超时时间:
def getHtml(url):
#构造ua
ua_header = {"User-Agent":"Mozzila/5.0(compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
#url连同headers一起构造Request请求,这个请求将附带IE9.0浏览器的User-Agent
request = urllib2.Request(url,headers=ua_header)
#设置超时时间
response = urllib2.urlopen(request,timeout=60)
html = response.read()
return html url = 'https://www.cnblogs.com/'
print getHtml(url)
添加header属性:
def getHtml(url):
ua = {"User-Agent":"Mozzila/5.0(compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
request = urllib2.Request(url)
#也可以通过Request.add_header()添加/修改一个特定的header
request.add_header("Connection","keep-alive")
response = urllib2.urlopen(request)
html = response.read()
#查看响应码
print '相应码为:',response.code
#也可以通过Request.get_header()查看header信息
print "Connection:",request.get_header("Connection")
#或者
print request.get_header(header_name = "Connection")
#print html
return html
添加随机ua
#coding:utf-8
import requests, json, time, re, os, sys, time
import urllib2
import random #设置为utf-8模式
reload(sys)
sys.setdefaultencoding( "utf-8" ) def getHtml(url):
#定义ua池,每次随机取出一个值
ua_list = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv2.0.1) Gecko/20100101 Firefox/4.0.1","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11","Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"]
user_agent = random.choice(ua_list)
#print user_agent
request = urllib2.Request(url)
request.add_header("Connection","keep-alive")
request.add_header("User-Agent",user_agent)
response = urllib2.urlopen(request,data=None,timeout=60)
html = response.read()
#print '响应码为:',response.code
#print 'URL:',response.geturl()
#print 'Info:',response.info()
Python获取网页Html文本的更多相关文章
- Python获取网页指定内容(BeautifulSoup工具的使用方法)
Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...
- python获取网页编码问题(encoding和apparent_encoding)
在requests获取网页的编码格式时,有两种方式,而结果也不同,通常用apparent_encoding更合适 注:推荐一个大佬写的关于获取网页编码格式以及requests中text()和conte ...
- Python获取网页html代码
获取网页html代码: import requests res = requests.get('https://www.cnblogs.com/easyidea/p/10214559.html') r ...
- 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...
- [python]获取网页中内容为汉字的字符串的判断
实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ...
- python获取网页源代码
最简单的网页取源(不用模拟浏览器的情况) import requests def getHTML(url): try: r = requests.get(url,timeout=30) r.raise ...
- python获取网页信息的三种方法
import urllib.request import http.cookiejar url = 'http://www.baidu.com/' # 方法一 print('方法一') req_one ...
- python 获取网页图片
re为正则表达式模组 re.findall在字符串中查找所有匹配的模式,返回一个list urllib2提供了使用简单的url工具 urllib2.urlopen发送url请求,返回一个文件流 imp ...
- python 获取网页编码格式
f = urllib2.urlopen(url,timeout=10)data = f.read() # decode the htmlcontentType = f.headers.get(' ...
随机推荐
- Android 从本地图库或拍照后裁剪图片并设置头像
在QQ和微信等应用都会有设置头像,一般都是从本地图库选取或相机拍照,然后再截图自己喜欢的部分,然后设置.最后一步把截取好的图片再保存到本地,来保存头像.为了大家使用方便,我把自己完整的代码贴出来,大家 ...
- Java微信公众平台开发(十三)--微信JSSDK中Config配置
转自:http://www.cuiyongzhi.com/post/57.html 前端开发工程师和关注前端开发的开发者们在2015年中肯定被腾讯的JSSDk引爆过,搞APP的.搞前端的甚至是是搞后端 ...
- ELK(Elasticsearch/Logstash/Kibana)安装时常见错误总结
问题一: [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: Java.lang ...
- Java多线程-线程的同步(同步代码块)
对于同步,除了同步方法外,还可以使用同步代码块,有时候同步代码块会带来比同步方法更好的效果. 追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问 ...
- HDR
[HDR] 什么是 HDR? 高动态范围拍摄(HDR)现在已经得到广泛使用,被用来补偿大多数数码成像传感器有限的动态范围.照片的动态范围是指最暗的色彩与最亮的色彩之间的亮度范围——也可以一并表示色调范 ...
- Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity Framework Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity F ...
- 带你剖析WebGis的世界奥秘----点和线的世界(转)
带你剖析WebGis的世界奥秘----点和线的世界 转:https://zxhtom.oschina.io/zxh/20160813.html 编程 java 2016/08/13 0留言, 0 ...
- Druid配置属性列表及含义
前两天,在排查springBoot使用双数据源出现的运行一段时候出现了数据库连接断开的问题的时候,查了很多关于Druid数据库连接池配置的文章,虽然最后问题的原因不是属性配置的问题,也可以说是 属性配 ...
- apt-get update 时的问题 W:Failed to fetch gzip:/var/lib/apt/lists/partial...解决办法
http://askubuntu.com/questions/149454/upgrade-from-11-04-to-11-10-getting-wfailed-to-fetch-gzip 这个问题 ...
- 项目二:品优购 第二天 AngularJS使用 brand商品页面的增删改查
品优购电商系统开发 第2章 品牌管理 传智播客.黑马程序员 1.前端框架AngularJS入门 1.1 AngularJS简介 AngularJS 诞生于2009年,由Misko Hevery 等人 ...