请选择 进入手机版 | 继续访问电脑版
楼主: CDA网校
728 0

[数据挖掘新闻] python抽取指定url页面的title方法——CDA人工智能学院 [推广有奖]

管理员

大师

61%

还不是VIP/贵宾

-

威望
3
论坛币
29523 个
通用积分
3001.1581
学术水平
259 点
热心指数
267 点
信用等级
234 点
经验
194071 点
帖子
5074
精华
19
在线时间
3682 小时
注册时间
2019-9-13
最后登录
2024-4-16

初级热心勋章

CDA网校 学生认证  发表于 2021-4-20 09:19:34 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

今天简单使用了一下python的re模块和lxml模块,分别利用的它们提供的正则表达式xpath来解析页面源码从中提取所需的title,xpath在完成这样的小任务上效率非常好,在这里之所以又使用了一下正则表达式是因为xpath在处理一些特殊的页面的时候会出现乱码的情况,当然这不是xpath的原因,而是页面本身编码,跟utf-8转码之间有冲突所致,

这里看代码:   
# !/usr/bin/python
#-*-coding:utf-8-*-
'''
功能:抽取指定url的页面内容中的title
'''
import re
import chardet
import urllib
from lxml import etree
def utf8_transfer(strs):
'''
utf8编码转换
'''
try:
  if isinstance(strs, unicode):
   strs = strs.encode('utf-8')
  elif chardet.detect(strs)['encoding'] == 'GB2312':
   strs = strs.decode("gb2312", 'ignore').encode('utf-8')
  elif chardet.detect(strs)['encoding'] == 'utf-8':
   strs = strs.decode('utf-8', 'ignore').encode('utf-8')
except Exception, e:
  print 'utf8_transfer error', strs, e
return strs
def get_title_xpath(Html):
'''
xpath抽取网页Title
'''
Html = utf8_transfer(Html)
Html_encoding = chardet.detect(Html)['encoding']
page = etree.HTML(Html, parser=etree.HTMLParser(encoding=Html_encoding))
title = page.xpath('/html/head/title/text()')
try:
  title = title[0].strip()
except IndexError:
  print 'Nothing'
print title
def get_title(Html):
'''
用re抽取网页Title
'''
Html = utf8_transfer(Html)
compile_rule = ur'<title>.*</title>'
title_list = re.findall(compile_rule, Html)
if title_list == []:
  title = ''
else:
  title = title_list[0][7:-8]
print title
if __name__ == '__main__':
    url = 'http://www.baidu.com'
    html = urllib.urlopen(url).read()
    new_html = utf8_transfer(html)
    try:
        get_title_xpath(new_html)
        get_title(new_html)
    except Exception, e:
        print e
下面是结果:
百度一下,你就知道
百度一下,你就知道
简单的小实践,继续学习,欢迎交流。
以上这篇python抽取指定url页面的title方法就是小编分享给大家的全部内容了,希望能给大家一个参考




扫码关注CDA公众号,即可获取最新版数据分析题库大全CDA免费精品课70+


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python Title 人工智能 url CDA

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 15:49