PYTHON爬虫学习-糗事百科内容爬取
来源:互联网 发布:无忧seo 编辑:程序博客网 时间:2024/05/18 09:52
改了半天,终于按照自己的设想把这东西做出来了,赶快把自己的心得写下来。
首先上源码:
import re
import urllib.request
def getjoke(url,page):
headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36')
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
data=urllib.request.urlopen(url).read().decode('utf-8')
namept='<a href="/users/\w*?/" target="_blank" title="(.*?)">'
contentp='<div class="content">(.*?)</div>'
namelist=re.compile(namept,re.S).findall(data)
contentlist=re.compile(contentp,re.S).findall(data)
f=open(r"C:\Users\10357\Desktop\qiushi.txt",'w',encoding='utf-8')
for name in namelist:
for c in contentlist:
f.write('用户名:'+name)
f.write('\n')
c=str(c.replace('\n',''))
f.write('内容:'+c)
f.write('\n')
f.close()
for i in range(1,10):
url="https://www.qiushibaike.com/8hr/page/"+str(i)
getjoke(url,i)
print("finished!")
先观察各网页间的网址规律,构建出网址变量,通过for循环实现多页内容的爬取
构建一个自定义的函数,来爬取我们想要的内容:
开始还是模拟chrome浏览器进行访问。因为爬取的主要是用户的id和用户发表的段子这俩部分内容,所以观察网页源代码,用正则表达式提取出对应自己想要的信息。
之后对用户id和对应发表的段子内容进行遍历,将其依次保存在桌面的txt文档中。
最后运行结束,输出finishied!
附上最后结果图:
心得的话:因为是新手,在网页编码这块卡了好长时间。感觉主要难点是怎么输出你爬取的信息(无论是保存到文件中还是打印出来),只要是解决了这个,其他我觉得就是水到渠成。
- PYTHON爬虫学习-糗事百科内容爬取
- python爬虫学习笔记(1)-爬取糗事百科
- python爬虫爬取糗事百科
- python 爬虫 爬取糗事百科段子
- Python爬虫 爬取糗事百科段子
- Python爬虫爬取糗事百科段子
- python爬虫----爬取糗事百科
- Python爬虫实现爬取糗事百科
- Python爬虫 爬取糗事百科段子
- python爬虫爬取糗事百科图片
- 爬虫爬取糗事百科
- Python爬虫教程—python爬取糗事百科详解
- Python爬虫实战一之爬取糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫(一)——爬取糗事百科
- Python爬虫实战一之爬取糗事百科段子
- Codeforces 830A, Binary Search
- hibernate criteria一对多查询,并对多方的集合数据进行过滤,返回部分集合
- spring boot整合cxf发布webservice服务和cxf客户端调用
- 深浅拷贝
- Java中Map, List, Set和Queue的区别和使用场景
- PYTHON爬虫学习-糗事百科内容爬取
- 1:分析菱形继承的问题。 2:剖析虚继承是怎么解决二义性和数据冗余的。
- 深入理解linux内核——内存寻址
- Windows 10右键点击Word EXCEL PPT PDF等,系统资源管理器立即重启解决方法
- 虚拟机CentOS7 配置固定IP地址
- 微信小程序列表的上拉加载和下拉刷新的实现
- Cardiologist-LevelArrhythmiaDetectionwithConvolutionalNeuralNetworks
- 初试iOS coreML
- Error creating bean with name 'mvcContentNegotiationManager'