利用python获取网页内容可以说是非常的方便的,本人是小白,在学习过程中,记录一点点心得。获取内容以知乎为例,只供学习使用哦。

1、导入库文件

import sys  #系统库
import urllib2 #常用的URL库
import re #正则库

2、设置编码格式为utf-8,不设置会出现乱码的情况哈

第一种方式:
sys.setdefaultencoding('utf-8') #输出内容是utf-8 格式第二种方式:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

3、设置请求头和URL获取网页源码

#获取网页源码
def getHtml(url):header = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:48.0) Gecko/20100101 Firefox/48.0"}request = urllib2.Request(url=url,headers=header) #模拟浏览器进行访问response = urllib2.urlopen(request)text = response.read()return text

关于header的获取请看这里,在浏览器中打开一个网页 -> 右键 ->检查/审查元素(不同浏览器叫法不一) ->network(网络) ->在下面随意打开一个链接 ->在右侧查看User-Agent
赋图如下:

3.1 利用urllib2.Request(url='这是url',headers='这是header') 设置请求header

3.2 urllib2.urlopen(request) 获取网页源码

3.3 text = response.read() 从返回中读取源码


4 、通过html源码解析页面中的超链接

#通过解析html解析超链接
def getUrls(html):pattern = re.compile('<a href="/story/(.*?)"') #提高效率items = re.findall(pattern,html)urls = [] #链接的listfor item in items:urls.append('http://daily.zhihu.com/story/' + item)  # 拼接参数return urls

思路:拿到了页面源码怎么样获取里面的url链接呢,如果能通过一种格式过滤出url就好了,这时正则就是我们的王牌了。正则可以帮助我们轻松解决这个问题。

正则的头文件在re库中,
4.1 通过pattern = re.compile('正则表达式') 定义正则表达式
4.2 re.findall(正则表达式,网页源码) 配置符合正则表达式的内容


5.对获取的内容进行读取

#解析日报内容(标题+正文)
def getContent(url):html = getHtml(url)pattern = re.compile('<h1 class="headline-title">(.*?)</h1>')items = re.findall(pattern,html)# print items[0]#匹配文章内容pattern = re.compile('<div class="content">\\n<p>(.*?)</div>',re.S)  #re.S匹配换行符items_withtag = re.findall(pattern,html)for item in items_withtag:dr = re.compile(r'<[^>]+>', re.S) #去除标签正则dd = dr.sub('', item)print dd

完整源码地址:回去再传吧,网络限制github,哈哈哈。。
https://github.com/MisterZhouZhou/pythonLearning

python2.x 获取网页内容相关推荐

  1. php get 返回源码,php源码 fsockopen获取网页内容实例详解

    PHP fsockopen函数说明: Open Internet or Unix domain socket connection(打开套接字链接) Initiates a socket connec ...

  2. 【C#】获取网页内容及HTML解析器HtmlAgilityPack的使用

    最近经常需要下载一些东西,而这个下载地址又会经过层层跳转,每个页面上都有很多广告,烦不胜烦,所以做了一个一键获得最终下载地址的小工具.使用C#,来获取网页内容,然后通过HtmlAgilityPack获 ...

  3. php 获取网页内容 四种方法

    <?php     //获取网页内容     //方法一     // $content = file_get_contents("http://bbs.zj.com");/ ...

  4. C#获取网页内容的三种方式

    搜索网络,发现C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse...方法一:使用WebClient (引用自 ...

  5. VC++中使用使用winnet类获取网页内容

    2005-09-01 VC++中使用使用winnet类获取网页内容 - [VC专栏] 微软提供的Winnet类是一个应用层的网络通信组件, 它可以使你的应用程序很容易的实现http.ftp.gophe ...

  6. vbs获取html内容,VBS获取网页内容

    VBS获取网页内容 2011年03月14日 功能:通过VBS获取远程网页的内容,并提取其中需要的部分(示例中提取股票信息) 以下为代码: 测试VBS获取网页内容 //如果提示权限问题可以设置IE选项, ...

  7. C语言 获取网页内容

    参考来源:https://blog.csdn.net/xiahn1a/article/details/41680959 vc6 上编译通过 #include <winsock.h> #in ...

  8. php获取另一个网页内容,php获取网页内容的三种方法

    本文介绍下,php实现获取网页内容的三种方法,有需要的朋友,参考下吧. 用php代码实现获取网页的原理: 将抓取内容,通过正则表达式过滤,得到想要的内容. 关于正则表达式的内容,程序员之家介绍了很多, ...

  9. php 抓取网站,php 获取网页内容的四种方法

    1,使用xmlhttp对象,类似asp中的ActiveXObject对象. 代码: //获取网页内容 $xhr = new COM("MSXML2.XMLHTTP"); $xhr- ...

  10. php 正则抓取页面内容_PHP_php获取网页内容方法总结,抓取到的内容在通过正则表达 - phpStudy...

    php获取网页内容方法总结 抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,有兴趣的,以下就是几种常用的用php抓取网页中的内容的方法. 1. ...

最新文章

  1. 【转】msyql使用-用户创建/权限配置
  2. react 哲学_细聊Concent amp; Recoil , 探索react数据流的新开发模式
  3. xampp index.php报错,XAMPP配置出现403错误“Access forbidden!”的解决办法
  4. mysql 5 安装过程
  5. RadonDB - 部署教程
  6. 查看linux服务器的配置
  7. Altium Designer17.1版本使用教程
  8. AnyLogic 建立谢林模型
  9. spring源码之@dependsOn
  10. 家庭记账的最简单方法
  11. 【ENVI】监督分类
  12. 什么服务器操作系统更好?四大流派有这些!
  13. KubeSphere介绍和基于K8S的安装
  14. echarts中国地图飞线图demo
  15. 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
  16. 【强化学习】优势演员-评论员算法(Advantage Actor-Critic , A2C)求解倒立摆问题 + Pytorch代码实战
  17. java实现随机点名器
  18. 无损放大图片软件有哪些?试试这些图片无损放大工具
  19. JEECG报表整合方案
  20. hive执行报错:Both left and right aliases encountered in JOIN

热门文章

  1. Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
  2. win10关闭最佳分辨率通知
  3. Arduino相关函数
  4. 第三次作业(尤心心)
  5. 换个角度深入理解GlusterFS
  6. 用计算机将复数转换成角度,卡西欧FX-991ES计算器能计算电路里的复数加减乘除然后换算成角度吗?...
  7. 三种Perceptual_metric:VGG distance,Inception Score,FID Score的源码
  8. 巨潮网怎么下载年报_如何下载上市公司财务报表?
  9. vscode 保存时自动格式化遇到的坑
  10. js从服务器获取word文档,JavaScript-js如何获取word文档页数