使用工具

获取xpath路径

查看网页编码

对进程使用方法

pool需要引入的函数才能使用,页面内的函数不能使用。

from get_jinjian import get_text,get_seg,novel_dir,compare_word2vc,get_seg_hanlp

url='https://m.jjwxc.net/book2/4543143'
urls_list, title=novel_dir(url)#
main_url='https://m.jjwxc.net'


urls=[main_url+i for i in urls_list]
num_process=10
with multiprocessing.Pool(processes=num_process) as pool:
    results=pool.map(get_text,urls)
pool.close()
string=''.join(results)#results是每一章节的内容的list

 筛选依据

一个重要的原因是如果这本小说写得不好的话,那么作者很可能没有更新动力,也就写不了太多章节。第二嘛小说章节太少多半是没写下去了或则情节太简单、设计不成熟。所以先用晋江的筛选工具筛选第一次,若然后留下的小说就可以用本部分代码选择章节数量超过设置数值的小说。

步骤

1进入手机版,页面如下,复制url

 2根据口味和一般这类小说的章节数量设置阈值

比如我喜欢的《毒系女配修魔录》,章节213,我就把阈值设置为150.

3代码


#获取小说的目录最大数
#url='https://m.jjwxc.net/book2/3212757'
def novel_dir2(url=None):
    if url==None:
        return print('None')
    url="%s?more=0&whole=1"%(url)
    r=requests.get(url)
    r.encoding='gb18030'
    
    data=etree.HTML(r.text)
    p=data.xpath("//div/a/span[1]/text()")
    
    try:
        p1=int(re.findall(r"\d+",p[-1])[0])
    except:
        p1=0

    return p1

#url='https://m.jjwxc.net/assort?fw0=0&fbsj2020=2020&fbsj2019=2019&fbsj2018=2018&yc1=1&xx3=3&mainview0=0&sd2=2&sd3=4&lx0=0&fg0=0&bq=&removebq=&sortType=0&collectiontypes=ors&isfinish=2&searchkeywords=&page=%s'
url='https://m.jjwxc.net/assort?fw0=0&fbsj2020=2020&fbsj2019=2019&fbsj2018=2018&yc1=1&xx5=5&mainview2=2&sd2=2&sd3=4&lx0=0&fg0=0&collectiontypes=ors&notlikecollectiontypes=ors&bq=&removebq=&searchkeywords=&page=%s'
def maxtexts(url):
    r=requests.get(url)
    r.encoding='gb18030'
    #print(r.text.encode('gb18030').decode('utf-8'))
    data=etree.HTML(r.text)
    p=data.xpath("//tr/td/a[1]/@href")
    titles=data.xpath("//tr/td/a[1]/text()")
    pp=['https://m.jjwxc.net'+i for i in p]
    
    
    pcon=[novel_dir2(i) for i in pp]
    ppp=pd.DataFrame({'title':titles,'pp':pp,'pcon':pcon})
    
    ppp=ppp.drop_duplicates()
    ppp=ppp.sort_values('pcon',ascending=False)
    con1=[]
    con2=[]
    for i,j in zip(ppp['title'],ppp['pcon']):
        #print(i)
        if j>150:
            print(i,j)
            con1.append(i)
            con2.append(j)
            
    return con1,con2
#到第10页需要登录,十页之后不再爬取,之后小说太烂
con1,con2=maxtexts(url%(1))

两页结果示例

 百草记年 642
不做贤惠女(快穿) 546
我要当女帝,谁反对,谁赞成? 516
我立于亿万生命之上 451
第一女军侯 387
快穿之云微游记 358
胜者为王[快穿] 297
画风清奇[快穿] 278
仙路温陶(修真) 264
快穿之炮灰人生 245
路人甲只想暴富(快穿) 228
女主她就是不恋爱[快穿] 218
毒系女配修魔录 213
动物世界直播中 213
龙族今天也在种菜 198
听说我是坏人(快穿) 195
佛系团宠[快穿] 191
深渊之主[无限流] 181
魔改文明 167
完美陪训 [快穿] 165
我是一棵许愿树(快穿) 164
玩家靠开马甲一统天下 158
女神成长手册[快穿] 157
养老攻略(快穿) 154
寻仙 685
当咸鱼大巫穿越异界 244
公主公主 231
成为超人后我破产了 192
快穿之颤抖吧!白眼狼 186
反派的自我修养 184
女配威武(快穿) 163
高门主母快穿系统 162
快穿之改造二十四孝 155
谈恋

爱不如搞事业[快穿] 152

总结

书慌时候能大海寻珠,日常阅读也能锁定优质内容。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐