10Python爬虫---爬虫实战之糗事百科段子
2018-01-30 13:59
295 查看
目的:获取糗事百科段子
思路:
1、爬取网页
2、然后根据正则爬取出 关键内容
3、根据关键内容 再用正则匹配出 对应的用户名和内容
4、循环赋值进行输出
源码:
结果:
注意:如果糗事百科网页代码结构发生变化那么上述代码中的URL以及网址的正则表达式也是需要改变的。
如有疑问可以留言 看到都会回复的说~
思路:
1、爬取网页
2、然后根据正则爬取出 关键内容
3、根据关键内容 再用正则匹配出 对应的用户名和内容
4、循环赋值进行输出
源码:
import urllib.request import re def getcontent(url, page): headers = ("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36") opener = urllib.request.build_opener() opener.addheaders = [headers] # 将opener安装为全局 urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode("utf-8") # 构建对应用户提取的正则表达式 userpat = '<h2>(.*?)</h2>\n[</a>\n<div class="articleGender|</span>\n<!-- <div class="articleGender]' # 存在匿名用户 所有需要两种条件 # 构建对应段子内容提取的正则表达式 contentpat = '<div class="content">\n<span>(.*?)\n</span>' # 找出所有用户 # re.S 将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配 userlist = re.compile(userpat, re.S).findall(data) # 找出所有内容 contentlist = re.compile(contentpat, re.S).findall(data) x = 1 # 通过for循环遍历段子内容并将内容分别赋给对应的变量 for content in contentlist: content = content.replace("\n", "") # 用字符串作为变量名,现将对应字符串赋给一个变量 name = "content"+str(x) # 通过exec()函数实现用字符串作为变量名并赋值 exec(name+'=content') x += 1 y = 1 # 通过for循环遍历用户,并输出该用户对应的内容 for user in userlist: user = user.replace("\n", "") name = "content"+str(y) print("用户 " + str(page)+str(y)+" 是: " + user) print("内容是: ") exec("print( " + name + ")") print("\n") y += 1 # 分别获取各项各页的段子,通过for循环可以获取多页 for i in range(1, 3): url = "https://www.qiushibaike.com/8hr/page/"+str(i) getcontent(url, i)
结果:
注意:如果糗事百科网页代码结构发生变化那么上述代码中的URL以及网址的正则表达式也是需要改变的。
如有疑问可以留言 看到都会回复的说~
相关文章推荐
- Python爬虫实战(六):爬取糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- 转 Python爬虫实战一之爬取糗事百科段子
- Python爬虫教程——实战一之爬取糗事百科段子
- Python 爬虫实战 - 糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- [python3]爬虫实战一之爬取糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- 芝麻HTTP:Python爬虫实战之爬取糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- Python爬虫实战(1):爬取糗事百科段子
- 静觅 » Python爬虫实战一之爬取糗事百科段子
- Python爬虫教程——实战一之爬取糗事百科段子
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫实战-爬取糗事百科段子
- Python爬虫实战之爬取糗事百科段子
- Python爬虫实战一之爬取糗事百科段子
- python 爬虫实战1 爬取糗事百科段子
- Python多线程爬虫实战_爬取糗事百科段子的实例
- Python爬虫实战一:爬取糗事百科的文本段子