春雨医生问答实例的爬取

春雨医生问答实例爬虫

好久不更博~

九月中旬过去了 不管怎样 我比赛也都结束了 是时候丰富自己一波了 我说了今搞出来爬虫的 gan起来

那么首先是html文档的获取

def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return " "

接下来不管我们怎样解析这个html文档结构 解析完了最重要的是我们获得我们想要的内容 最重要的是正则表达式
首先正则语法 正则语法
正则语法
最全正则
然后就是怎么应用啦
Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
举一个简单的例子,在寻找一个字符串中所有的英文字符:

import re
pattern = re.compile('[a-zA-Z]')
result = pattern.findall('as3SiOPdj#@23awe')
print result
# ['a', 's', 'S', 'i', 'O', 'P', 'd', 'j', 'a', 'w', 'e']

那么就爬一波春雨医生
我们观察一波网页源码
question在文档中的情况
answer在文档中的情况
可以看到问答都在i标签中
所以 分别可以这样获取
重要的就是这里
QAQ

re_wen=re.compile(r'(?<=<i class="ask-tag">)[\s\S]*?(?=</a>)')
    re_da=re.compile(r'(?<=<div class="qa-item qa-item-answer">)[\s\S]*?(?=</div>)')

然后就没了
上代码

#coding:utf-8
import requests
from bs4 import BeautifulSoup
import bs4
import re
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return " "
def main():
    depth = 10
    start_url = 'http://www.chunyuyisheng.com/pc/search/qalist/?query=%E6%8A%91%E9%83%81 '
    infoList = []
    re_wen = re.compile(r'(?<=<i class="ask-tag">)[\s\S]*?(?=</a>)')
    re_da = re.compile(r'(?<=<div class="qa-item qa-item-answer">)[\s\S]*?(?=</div>)')
    for i in range(1, depth):
        url = start_url + '&page=' + str(i)
        html = getHTMLText(url)
        result_a=re_wen.findall(html)
        result_b=re_da.findall(html)
        for i in range (len(result_a)):
            result_a[i]=result_a[i].replace(" ","").replace(r"</i>",':').replace("\n",'').replace("\t",'')
        for i in range(len(result_b)):
            result_b[i] = result_b[i].replace('<i class="ask-tag answer-tag">', "--").replace("<span class='s-hl'>", '').replace("</span>", "").replace("\t", '').replace(" ","\n")
        for i in range(len(result_b)):
            print(str(i)+":"+result_a[i]+result_b[i])
main()
网站医生v2.0 企业免费版 ================= 在使用服务器或VPS的时候。或多或少会遇到一些麻烦的事情,IIS因某个原因停止,或者因负荷不下而停止,极大的影响网站运行,尤其是我们没用在监控和管理的状态下,网站IIS假死就无法再恢复了。因此服务助手可以帮助你在一定时间内恢复IIS运行!让你网站保存持久的良好访问,每时每刻都有好心情! ================= 内存使用篇: 网站服务占用: 也因服务器在运行时,我们运作了网站,iis就不断的占用服务器或vps的内存。网站的访问量越高,负荷就越大,随之也陆续的占用服务器或vps的内存!使内存越来越小,甚至卡机死机。 然而,当网站人数访问量从高到低降下来时内存也不会因此而下降多少,内存得不到回收,一直占用!影响了访问速度和性能发挥。 解决的方法也只有重启IIS才能彻底的回收多余的占用内存,以保留备用。网站医生V2.0也就帮你解决了这个难题,无需你死守桌面!让你安心休息!还你一个流畅访问的网站... 数据库服务占用: 谈到网站,大部分都会用到数据库,一般分为mysql和mssql,mysql占用较少,传统上会有自动回收!一般我们无需担心mysql占用太大。而MSSQL数据库就不同,长期运行即使是单个站,也会大量的占用服务器或VPS的内存,mssql的服务和IIS相似,当访问量高,数据库占用的内存随之也高,相反,访问量从高到低,内存也不会恢复到低的状态。 由此我们看到数据库还是占用了多余内存,严重时可以占用整个服务器或vps的内存直到你的网站无法正常运行!当我们远程手动重启数据库服务时,就可以恢复到最低使用内存,网站和各个访问均可得到充分的内存使用,这样服务器或VPS的整个系统也就稳定了,网站也自然就时时顺畅打开。 使用 网站医生2.0 就帮你解决了这一难题,还你该有的内存
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值