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文本的更多相关文章

  1. Python获取网页指定内容(BeautifulSoup工具的使用方法)

    Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...

  2. python获取网页编码问题(encoding和apparent_encoding)

    在requests获取网页的编码格式时,有两种方式,而结果也不同,通常用apparent_encoding更合适 注:推荐一个大佬写的关于获取网页编码格式以及requests中text()和conte ...

  3. Python获取网页html代码

    获取网页html代码: import requests res = requests.get('https://www.cnblogs.com/easyidea/p/10214559.html') r ...

  4. 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接

    最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...

  5. [python]获取网页中内容为汉字的字符串的判断

    实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ...

  6. python获取网页源代码

    最简单的网页取源(不用模拟浏览器的情况) import requests def getHTML(url): try: r = requests.get(url,timeout=30) r.raise ...

  7. python获取网页信息的三种方法

    import urllib.request import http.cookiejar url = 'http://www.baidu.com/' # 方法一 print('方法一') req_one ...

  8. python 获取网页图片

    re为正则表达式模组 re.findall在字符串中查找所有匹配的模式,返回一个list urllib2提供了使用简单的url工具 urllib2.urlopen发送url请求,返回一个文件流 imp ...

  9. python 获取网页编码格式

    f = urllib2.urlopen(url,timeout=10)data = f.read()    # decode the htmlcontentType = f.headers.get(' ...

随机推荐

  1. Python图片转字符画

    PIL安装很麻烦,推荐下载exe直接安装 PIL官网:http://pythonware.com/products/pil/ 但现在里面下载链接访问不了,我把32位和64位版本上传到博客园以供下载 P ...

  2. CImage得到位图的大小

    CImage image; image.Load(_T("1.jpg")); //HBITMAP hBitmap=image.Detach(); HGLOBAL m_hMem = ...

  3. 设置VMware Player中的虚拟机和宿主机共享文件

    设置VMware Player中的虚拟机和宿主机共享文件 试验环境: 虚拟机软件:VMware Player 6.0.3 宿主机os:windows7 虚拟机os:centos6.6(32位)   完 ...

  4. 基于C++11的线程池(threadpool),简洁且可以带任意多的参数

    咳咳.C++11 加入了线程库,从此告别了标准库不支持并发的历史.然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池.信号量等.线程池(thread pool) ...

  5. 1-2 开发环境搭建-Windows平台

    C:\Program Files\nodejs\node_modules\npm\npmrc C:\Users\ZHONGZHENHUA\.android\avd H:\heimaandroidadt ...

  6. Java-Http

    1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.IOException; 4 im ...

  7. 在Win7 64位电脑上安装Sql Server 2008 R2 Express

    安装环境说明: 操作系统:Win7 64位 英文版 安装步骤: 1.准备安装文件 下载网址:https://www.microsoft.com/zh-CN/download/details.aspx? ...

  8. JAVA中mark()和reset()用法

    根据JAVA官方文档的描述,mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效.如果在mark后读取超过rea ...

  9. 数字图像处理实验(15):PROJECT 06-02,Pseudo-Color Image Processing 标签: 图像处理MATLAB 2017-05-27 20:53

    实验要求: 上面的实验要求中Objective(实验目的)部分是错误的. 然而在我拿到的大纲中就是这么写的,所以请忽视那部分,其余部分是没有问题的. 本实验是使用伪彩色强调突出我们感兴趣的灰度范围,在 ...

  10. 7.python实现高效端口扫描器之nmap模块

    对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...