Python利用xpath和正则re爬取新浪新闻
今天我们来进行简单的网络爬虫讲解:利用用from lxml import html库+Xpath以及requests库进行爬虫
1.我们将爬取新浪微博首页要闻
我们摁F12查看网页源代码查找要闻内容所对应的HTML的代码
通过观察我们可以发现每个标题都在<h1 data-client=“headline”>下的 a标签中,其实这个就是我们标题
2.再利用requests的库先打印出我们的网页源代码
from lxml import html
import requests
html = requests.get("https://news.sina.com.cn/")
print(html.text)
我们可以看得到打印的源代码内存在乱码,我们可以通过F12点击网络,并且刷新页面
我们点击左侧的所有请求状态,再通过右侧的响应可以查看该get请求对应网页的位置,除此之外呢我么可以看到网页的代码是通过UTF-8的编码格式进行编码的
所以我们需要进行编码成utf-8在打印出来
from lxml import html
import requests
html = requests.get("https://news.sina.com.cn/")
html.encoding = 'utf-8'
print(html.text)
那么现在我们就是已经将网页的源代码获取了,我们接下来就要获取到网页的内容,其实利用xpath的时候获取的内容有两部分第一个部分就是获取属性值比如标签a中href的值或者a的文本内容都是不一样的,但是需要你们了解一下XPATH的语法规则,http://www.runoob.com/xpath/xpath-syntax.html
举一个例子我们具体的去体会一下xpath:
获取div中ul的li的a的href 的网址和a中文本内容:
只需要这样写就OK了现在我们就运行一下看看结把!
from lxml import html
import requests
import re
html1 = requests.get("https://news.sina.com.cn/")
html1.encoding = 'utf-8'
tree = html.fromstring(html1.content)
link = tree.xpath("//div[@class='nav-mod-1 nav-w']/ul/li/a/@href")
txt = tree.xpath("//div[@class='nav-mod-1 nav-w']/ul/li/a/text()")
for i in link:print(i)
for i in txt:print(i)
其实除了利用xpath的方法获取外我们也可以利用requests+re正则表达式去获取我们想要的内容,这里我们不对re正则进行细致的讲解,只讲一下我们所用到的内容:
re.findall(patrten,html)该方法是在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
re.compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法格式为:
例如我们获取这个标题文字:
from lxml import html
import requests
import re
html1 = requests.get("https://news.sina.com.cn/")
html1.encoding = 'utf-8'
# tree = html.fromstring(html1.content)
# link = tree.xpath("//div[@class='nav-mod-1 nav-w']/ul/li/a/@href")
# txt = tree.xpath("//div[@class='nav-mod-1 nav-w']/ul/li/a/text()")
patren_1 = re.compile(r'<ul>.*?<li><a.*? target="_blank">(\w+)</a></li>',re.S)
link = re.findall(patren_1,html1.text)
print(link)
Python利用xpath和正则re爬取新浪新闻相关推荐
- 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python爬取新浪新闻
最近公司项目比较少,楼主闲了好长时间了,作为一个刚毕业几个月的新人,心里很烦躁,只能自己找点新东西去学了.看到周围好多人都接触了爬虫,再加上楼主最近沉迷吴宣仪不可自拔,每天投票投票,投票的同时需要监控 ...
- 网络爬虫-----python爬取新浪新闻
思路:先爬取首页,然后通过正则筛选出所有文章url,然后通过循环分别爬取这些url到本地 #python新闻爬虫实战 import urllib.request import re url = 'ht ...
- python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...
一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 scrapy startproj ...
- python爬虫-使用BeautifulSoup爬取新浪新闻标题
** python爬虫-使用BeautifulSoup爬取新浪新闻标题 ** 最近在学习爬虫的技巧,首先学习的是较为简单的BeautifulSoup,应用于新浪新闻上. import requests ...
- 使用python网络爬虫爬取新浪新闻(一)
使用python网络爬虫爬取新浪新闻 第一次写博客,感觉有点不太习惯!不知道怎么突然就想学学爬虫了,然后就用了一天的时间,跟着教程写了这个爬虫,!不说废话了,我将我从教程上学习的东西整个写下来吧,从头 ...
- Python网络爬虫爬取新浪新闻
笔者最近由于需要研究互联网新闻,于是基于邱老师的网络爬虫实战,写了一个爬取新浪新闻的爬虫,爬取的信息有: 新闻标题 来源url 发布时间 正文 编辑者 与邱老师的爬虫相比有以下几点不同: 没有爬取新闻 ...
- 19Python爬虫--爬取新浪新闻标题并保存到数据库
一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 创建爬虫文件 scrapy st ...
- requests, Beautifusoup 爬取新浪新闻资讯
###1.爬取新浪新闻首页的新闻标题时间和链接 1 import requests 2 from bs4 import BeautifulSoup 3 4 res = requests.get('ht ...
- java实现爬取新浪新闻指定天数(一段时间)的头条新闻
目标:java实现爬取新浪新闻指定天数(一段时间)的头条新闻 需要导入jar包:fastjson和Jsoup. IDEA导入jar包办法:Intellij IDEA 添加jar包的三种方式 思路: 找 ...
最新文章
- 算法导论 第二部分——排序和顺序统计量
- 无线网络连接无法停用
- Python高效编程技巧
- pcl通过积分图来进行法线预测
- 大龄技术人的出路在哪里?6月20日长沙-中国技术开放日邀请你一起探讨
- C#框架提供的几种数据结构对单值查找的效率比较
- IBM MQ Explore使用
- ARP挂马***--嗅探欺骗的最恐怖方式
- 【Python】SNMP的安装及Python的调用
- 串口转以太网服务器原理,串口服务器和串口转以太网模块的区别
- 录屏——制作gif图片——压缩图片大小
- 医院陪诊小程序怎么开发-医院陪诊小程序源码功能
- 数据挖掘与python实践心得体会_2年数据挖掘服务工作心得体会
- python多目标优化_多目标优化---帕累托(Pareto)
- Discuz!开发之DB、CT类解析
- can分析仪、usb接口can卡的的型号定义
- 调整VM虚拟机显示窗口大小
- 建筑八大员培训湖北标准员培训工程施工现场标准员的工作导则
- java if 定义变量赋值_Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)...
- 一键Ghost恢复系统的操作步骤