Python 爬取糗事百科段子

#!/usr/bin/python
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
import sys
reload(sys)
sys.setdefaultencoding('utf8') 

page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
headers = {'User-Agent':user_agent}
try:
    request = urllib2.Request(url,headers = headers)
    response  = urllib2.urlopen(request)
   # print response.read()
 
    ######_match_ string
 
    content = response.read().decode('utf-8')
    # 其中 (.*?)为匹配的内容
    # 如果对正则不是很熟的同学,可以参考以下: 
    # 1. “.”是通配符,”*”表示匹配0次或任意次,”?”表示非贪婪匹配,.*?组合在一起则表示尽可能短地做匹配。 
    # 2. (.*?)代表一个分组,或者说一个捕获组。 
    # 3. re.S 标志代表在匹配时为点任意匹配模式,点 . 也可以代表换行符。 
    pattern = re.compile(r'(.*?).*?.*?(.*?).*?
(.*?)',re.S) items = re.findall(pattern,content) # print("%s"%items) for item in items: print("auther:%s"%item[0]) print("content:%s"%item[1]) print("likes:%s\n"%item[2]) except urllib2.URLError,e: if hasattr(e,'code'): print e.code if hasattr(e,'reaon'): print e.reason

原文地址

你可能感兴趣的:(Python 爬取糗事百科段子)