应表哥要求给侄子爬取一点英语练习题作为寒假附加作业
爬取内容如下
网址如下
# https://xiaoxue.hujiang.com/xsc/yingyu/p342265/ # https://xiaoxue.hujiang.com/xsc/yingyu/p342290/
区别为最后的p342265到p342290
而且网页为静态网页,所需内容在p标签内(有一点点是不需要的)
代码如下:
#导入所需要的模块 import time import requests import re #访问的url url='https://xiaoxue.hujiang.com/xsc/yingyu/p3422%s/' #设置windows代理头 headers = { 'user-agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50' } #循环填充并爬取 for i in range(65,91): respone=requests.get(url%i,headers=headers,timeout=3) time.sleep(0.25) #利用正则获取所需内容 data1=re.findall(r'<p.*?>\r\n\t(.*?)</p>',respone.text,re.S) data2=str(data1) #写入txt文件 p=open('english.txt','a',encoding='utf-8') p.write(data2+'\n') #以” ’,“为分界线添加换行 f1 = open("english.txt","r",encoding='utf-8') content = f1.read() t = content.replace("',","\n") with open("eng.txt","w") as f2: f2.write(t)
但是仅仅这样的话是有一些缺陷的,
(1)h1的标题没有插入对应内容之上
(2)出现内容之下的不必要内容,因为这些也在p标签内,手动或则匹配删除
(3)会出现一部分字符乱码的情况:
“=="
’=='
—==—
(4)# https://xiaoxue.hujiang.com/xsc/yingyu/p342290/页面内会出现第二页或则第三页的,这是一开始没有注意到的,可自行爬取添加
可以通过直接打卡txt文件直接全部替换相应字符完成
我侄子看到这作业也是很开心的
最后:小白初学,还有不足,不喜勿喷,请诸君多多指教
本文作为练习文章供其补充完善,不足之处请各位自己行完善。