【求助】抓书法字典

这个书法字典,我关注了很久。这个网站比我之前抓过的内容都要丰富。如果做了这一个,书法字典可以放手了,一劳永逸了。可惜我技术有限,对于有JS的网站无能为力。hua大或哪位大神可否出手相助抓下,字表有GBK的字就够了。
内容很丰富,有学习价值。
我可以洗版。

6.23更新;製作完成!

4 个赞

书法图片不是直接有链接吗?

2 个赞

地址问题,搞不定。

就是post表单,不是js
另外gbk太多了吧, GB2312就够了

这个网站没有反爬,下面是最粗糙的代码

import requests
sortlist=["0","3","4","5","6","7","8","9","shiliang","gangbi","zhuangke"]
with open(r'D:\现代汉语通用字表.txt','r',encoding="utf-8") as f:
    zi=f.read()
for z in zi:
    for s in sortlist:
        data={'wd':f'{z}','sort':f'{s}'}
        r=requests.post('http://www.shufazidian.com',data=data)
        with open(r'd:\shufa.txt','ab') as fi:
            fi.write(r.text.encode())
            
print('end')

爬完后,先清洗数据,然后如果需要离线图片,用imd批量下载就行
清洗时注意form标签中有字和字体信息,下例中的字是“无”,字体是简牍


> <form name="form1" method="post" action="">
                    <input name="wd" type="text" id="wd" value="无">
                    <select name="sort" id="sort" >
                        <option value="8" >行  书</option>
                        <option value="9" >楷  书</option>
                        <option value="7" >草  书</option>
                        <option value="6" >隶  书</option>
                        <option value="5" >魏  碑</option>
                        <option value="4" selected>简  牍</option>
                        <option value="3" >篆  书</option>
                    	<!--option value="0" >高清所有</option-->
                        <option value="shiliang">设计师专用</option>
                        <option value="gangbi">钢  笔</option>
                        <option value="zhuangke">篆  刻</option>
                      </select>
                    <button type="submit"></button>
                  </form>
1 个赞

GB2312够了,我看了下,簡體,繁體內容是一樣的。

很厲害!感謝出手!先搞定網頁數據,圖片可再弄。

本来想下载了给你,但因为懒写得简单,数据很多,下载了一会儿出去有事,随手就合上电脑,所以程序停了。我把字表传上来,省得你找,还得处理
现代汉语通用字表纯字表.txt (20.5 KB)

1 个赞

我不會用PY,網頁數據你幫忙抓一下唄

那好吧,我去单位了挂上,家里笔记本合习惯了

1 个赞

大神,有在抓吗?

挂上了。我是虾米

python学了一点点,呃,从入门到放弃
学会还是好啊

捣鼓半天,終於把python裝上了,成功跑了你寫的代碼,只是速度稍慢。

補:沒成功,跑了一段时间中止了。。。。
继续调试中。。。

辛苦了,感谢,期待哈。。。

1 个赞

网页基本抓完了。剩下图片。。。

跑这么快,我昨天看到你说程序中断,刚加了些手段,看来不需要了,哈哈。
外,由于没有解析筛选,抓的文本冗余部分很多,辛苦你了。

import requests,time,random
from retrying import retry
@retry(stop_max_attempt_number=3)
def do():
    r=requests.post('http://www.shufazidian.com',headers=headers,data=data)
    return r
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"}
sortlist=["0","3","4","5","6","7","8","9","shiliang","gangbi","zhuangke"]
with open(r'D:\现代汉语通用字表.txt','r',encoding="utf-8") as f:
    zi=f.read()
for z in zi:
    for s in sortlist:
        data={'wd':f'{z}','sort':f'{s}'}
        r=do()
        with open(r'd:\shufa3.txt','ab') as fi:
            fi.write(r.text.encode())
        time.sleep(random.random()*6)
            
print('end')

分成15份,一起抓的。图片也下完了。接下来洗版了。另:古诗文网能不能想想办法,您写粗略代码,我来跑。

好,有空了试试看

1 个赞

网页里的图片怎么处理啊?