python能刷机吗_正则表达式

如上图,只要把ccq2回复给公众号即可,然而每读完16篇文章才能挣到1个学分,真是屮艸芔茻!!

接到这个任务我的第一反应就是用python爬虫把每篇文章最后的代码爬下来,毕竟最后一句话格式固定,不一样的只是文章代码,要是真读文章再回复代码完全来不及。

好了,直接在电脑端微信打开阅读记录链接http://jsxy.gsedu.cn/wx/course/courseSelect.xhtm?FromUserName=obK7fskWFpwRPTYswm7NipdP6sJM,里面是所有待读的文章:

python能刷机吗_爬虫_02

既然是所有的文章,那网页源代码里必然有所有文章对应的超链接哈,嘿嘿,直接F12走起:

python能刷机吗_正则表达式_03

果然里面刺眼的的href好像在对我说,就是我啊,来咬(爬)我啊,哈哈哈。。。

红色标注的地方就是我要抓取下来的文章链接,这个正则表达式也很好写:      '<a href="(.*?)" >'

re.compile(r'<a href="(.*?)" >',re.DOTALL)                 好了,分析完了,就该贴代码了:


import urllib.request as request
import urllib.parse as parse
import string
import re
import os
import urllib.error as error
import urllib

def fetch(baseUrl):  
  
    # 第1步:模拟浏览器发送请求  
    response = urllib.request.urlopen(baseUrl)    
    data = response.read()
    data=data.decode('utf-8')    
  
    # 第2步:页面返回后,利用正则表达式提取想要的内容  
    nameList=[]  
    nameList = re.compile(r'<a href="(.*?)" >',re.DOTALL).findall(data)  
  
    # 第3步:返回在页面上析取的“标题名”  
    return nameList

#######     执行    ########   
if __name__ =="__main__": 
    #要抓取的网页地址  
    url = "http://jsxy.gsedu.cn/wx/course/courseSelect.xhtm?FromUserName=obK7fskWFpwRPTYswm7NipdP6sJM"
    #存放到名字列表中  
    NameList = fetch(url)  
  
    # 输出 NameList  
    Length = len(NameList)  
    for i in range(0, Length):  
        print ('%d ref is:%s' %(i+1, NameList[i]))
with open('C:/pythoncode/1228/hehe.txt', 'w') as f:
	for i in range(0,Length):
		f.write("\n")
		f.write(NameList[i])


先让我喝口水,恩,抓完了,就喝一口水的时间!

python能刷机吗_多线程_04

如上图,共抓去了541个链接,满分学分才541/16=33个,老妈给我要求帮完成24个。


与此同时,这些链接网址也被写到了txt文件里面:

python能刷机吗_python能刷机吗_05


简直不能更整齐!!!好的,既然所有的域名都搞到了,那就再把这些域名挨个分析咯,做法类似,就不描述了哈,当然,展示下最后爬取得文章代码:

python能刷机吗_爬虫_06

最后541个域名解析写出结果的时间也就不到三分钟,哈哈,老妈一年的文章就这样读完了!!