编程语言
首页 > 编程语言> > python爬虫案例(有缺陷文末说明)爬取初中英语练习题

python爬虫案例(有缺陷文末说明)爬取初中英语练习题

作者:互联网

应表哥要求给侄子爬取一点英语练习题作为寒假附加作业

爬取内容如下

网址如下

# 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)会出现一部分字符乱码的情况:

&ldquo;=="

&rsquo;=='
&mdash;==—

(4)# https://xiaoxue.hujiang.com/xsc/yingyu/p342290/页面内会出现第二页或则第三页的,这是一开始没有注意到的,可自行爬取添加

可以通过直接打卡txt文件直接全部替换相应字符完成

我侄子看到这作业也是很开心的

最后:小白初学,还有不足,不喜勿喷,请诸君多多指教

本文作为练习文章供其补充完善,不足之处请各位自己行完善。

标签:练习题,com,hujiang,爬取,xsc,初中英语,https,txt,文末
来源: https://blog.csdn.net/qpp77/article/details/122751136