Python实践--糗事百科网页爬虫

Python实践--糗事百科网页爬虫,第1张

概述1前言学了一段时间Python了,总结了相关的基础知识,所以想实践一下,看看成果如何。如下图所示,实现了一个糗事百科网页爬虫可以下载该[DemoAPK](https:/aw.githubusercontent.com/zxlworking/MyApplication_in_desaysv/masterest_qsbkest_qsbk-debug.apk"DemoAPK")使用2获取

1前言

学了一段时间Python了,总结了相关的基础知识,所以想实践一下,看看成果如何。
如下图所示,实现了一个糗事百科网页爬虫
可以下载该[Demo APK](https://raw.githubusercontent.com/zxlworking/MyApplication_in_desaysv/master/test_qsbk/test_qsbk-deBUG.apk" Demo APK")使用

2获取网页内容2.1构造请求头

模拟用户通过浏览器访问请求

user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; windows NT)"headers = {"User-Agent":user_agent}

2.2http请求数据

通过urllib2设置请求糗事百科某一页的数据

   try:	   url = "http://www.qiushibaike.com/hot/page/%s" % page       request = urllib2.Request(url, headers=headers)       response = urllib2.urlopen(request)       return response.read().decode("utf-8")   except urllib2.URLError, e:       if hasattr(e, "code"):           print "e.code:" + e.code       if hasattr(e, "reason"):           print "e.reason:" + e.reason

3准备正则表达式3.1解析当前页所有用户发布的糗事

依次为:用户ID、用户头像、用户昵称、用户信息、糗事内容、糗事图片、感觉好笑的人数、评论人数

def parse_qsbk_List(self, qsbk_List):    pattern = re.compile(        u"""<div qiushi_counts.*?""",        re.S)    return re.findall(pattern, qsbk_List)

3.2解析用户是否为匿名用户

在用户信息中判断是否被注释了,如果注释了则表示匿名用户

def parse_qsbk_anonymity(self, qsbk_anonymity):    return re.findall("", qsbk_anonymity)

3.3解析用户的性别、年龄

依次为***性别、年龄***

def parse_qsbk_author_sex_age(self, qsbk_author_sex_age):    return re.findall("(\d+)", qsbk_author_sex_age)

3.4解析糗事内容是否包含图片

解析糗事内容中是否有img标签

def parse_qsbk_thumb(self, qsbk_thumb):    return re.findall("", qsbk_thumb)

3.5解析好笑的人数、评论人数

依次为:好笑的人数、评论人数

def parse_qsbk_Vote_comment(self, qsbk_Vote_comment):    return re.findall(u"(\d+) 好笑.*?\n.*?\n.*?\n.*?\n(\d+) 评论", qsbk_Vote_comment)

3.6创建Json数据结构

每一个糗事内容用字典结构mQsbkParseElement 表示,其中每一个属性用键值对方式赋值,然后放入列表mQsbkParseEleements,最后通过Json.dumps转换成Json数据

mQsbkParseEleements = []    mQsbkParseElement = {}    mQsbkParseElement["author_ID"] = re.findall("\d+", qsbk_element[0])[0]    mQsbkParseElement["author_head_img"] = "http:" + qsbk_element[1]    mQsbkParseElement["author_name"] = qsbk_element[2]    mQsbkParseElement["is_anonymity"] = 1    mQsbkParseElement["author_sex"] = SEX_MAN    mQsbkParseElement["author_age"] = 0    mQsbkParseElement["content"] = qsbk_content	mQsbkParseElement["has_thumb"] = 1    mQsbkParseElement["thumb"] = "http:" + qsbk_thumb[0]    mQsbkParseElement["Vote_number"] = int(qsbk_Vote_comment[0][0])    mQsbkParseElement["comment_number"] = int(qsbk_Vote_comment[0][1])    mQsbkParseEleements.append(mQsbkParseElement)result["code"] = 0result["desc"] = "success"result["current_page"] = pageresult["result"] = mQsbkParseEleementsJson.dumps(result, enCoding="utf-8", ensure_ascii=False)


PS:糗事内容详情进行类似处理

4AndroID端获取糗事百科内容

参考Demo

总结

以上是内存溢出为你收集整理的Python实践--糗事百科网页爬虫全部内容,希望文章能够帮你解决Python实践--糗事百科网页爬虫所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1186216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存