网上的python教程大都是2.x版本的,python2.x和python3.x相比较改动比较大,好多库的用法不太一样,我安装的是python3.x,我们来看看详细的例子
0x01
春节闲着没事(是有多闲),就写了个简单的程序,来爬点笑话看,顺带记录下写程序的过程。第一次接触爬虫是看了这么一个帖子,一个逗逼,爬取煎蛋网上妹子的照片,简直不要太方便。于是乎就自己照猫画虎,抓了点图片。
科技启迪未来,身为一个程序员,怎么能干这种事呢,还是爬点笑话比较有益于身心健康。
return request.urlopen(req).read()
这样就把 python 伪装成 chrome 去获取糗百的网页,可以顺利的得到数据。
至此,利用 python 爬取糗百和捧腹网的笑话已经结束,我们只需要分析相应的网页,找到我们感兴趣的元素,利用 python 强大的功能,就可以达到我们的目的,不管是 xxoo 的图,还是内涵段子,都可以一键搞定,不说了,我去找点妹子图看看。
# -*- coding: utf-8 -*-
import sys
import urllib.request as request
from bs4 import beautifulsoup
def gethtml(url):
headers = {‘user-agent’: ‘user-agent:mozilla/5.0 (macintosh; intel mac os x 10_12_3) applewebkit/537.36 (khtml, like gecko) chrome/56.0.2924.87 safari/537.36’}
req = request.request(url, headers=headers)
return request.urlopen(req).read()
def get_pengfu_results(url):
soup = beautifulsoup(gethtml(url), ‘lxml’)
return soup.find_all(‘p’, {‘class’:”content-img clearfix pt10 relative”})
def get_pengfu_joke():
for x in range(1, 2):
url = ‘http://www.pengfu.com/xiaohua_%d.html’ % x
for x in get_pengfu_results(url):
content = x.string
try:
string = content.lstrip()
print(string + ‘\n\n’)
except:
continue
return
def get_qiubai_results(url):
soup = beautifulsoup(gethtml(url), ‘lxml’)
contents = soup.find_all(‘p’, {‘class’:’content’})
restlus = []
for x in contents:
str = x.find(‘span’).gettext(‘\n’,”)
restlus.append(str)
return restlus
def get_qiubai_joke():
for x in range(1, 2):
url = ‘http://www.qiushibaike.com/8hr/page/%d/?s=4952526’ % x
for x in get_qiubai_results(url):
print(x + ‘\n\n’)
return
if __name__ == ‘__main__’:
get_pengfu_joke()
get_qiubai_joke()
更多python3制作捧腹网段子页爬虫、相关文章请关注php中文网!