爬虫实战---正则表达式提取信息

  1. 正则提取网页时,常用的函数有:
    -re.compile() #建立匹配规则
    -re.findall() #返回的符合匹配规则的所有结果的一个列表
    -re.split() #删除满足条件的字符或特殊符号

  2. 实例所采用的知识的:
    -采用面向对象的方法
    -利用requests对服务器发出请求(一共爬取506页)
    -利用正则表达式提取网页信息
    -open函数进行读写操作

import requests
import re
class Spider:
    #初始化参数
    def __init__(self,page):
        self.url='http://www.neihan8.com/article/list_5_{}.html'.format(page)
        self.headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
        }

    #下载网页信息
    def loadPage(self):
        res=requests.get(self.url,headers=self.headers)
        res.encoding=res.apparent_encoding
        html=res.text
        return html

    #解析网页--正则表达式
    def parse_html(self,html):
        pattern=re.compile(r'(.*?)
',re.S) item_list=pattern.findall(html) return item_list #提取信息--正则表达式 def printOnePage(self,item_list): for item in item_list: pattern=re.compile(r'[“…”

]'
) item=pattern.split(item) item=''.join(item) self.writeToFile(item) #保存信息 def writeToFile(self,text): with open('duanzi.txt','a',encoding='utf-8') as f: f.write(text) def run(self): #1.获取网页信息 html=self.loadPage() #2.提取信息 item_list=self.parse_html(html) #3.保存 self.printOnePage(item_list) print("保存成功") if __name__ == '__main__': for page in range(1,507): mySpider=Spider(page) mySpider.run()

你可能感兴趣的:(regex)