ゼロベースpython 3爬虫類登り起点小説

3346 ワード

今回爬虫類は、分類、タイトル、内容を含む起点中国語ネット小説を掲載し、別々に保存した.
主に基礎知識を用いて、完全に基礎がゼロなので、scrapy、redis分布式あるいはマルチプロセスマルチスレッドなどの
jsレンダリング右ボタンをクリックできません.どうすればいいですか?
起点の中国語ネットは海賊版に打撃を与えて、jsを使ってレンダリングを行って、だから小説の閲覧ページに入って右ボタンをクリックすることができなくて、しかし私達も仕方がないのではありません
一般的な解読方法は、ブラウザにアクセスする設定--セキュリティ設定--jsスクリプトを閉じることです.
あなたのブラウザのショートカットキーの設定を見ることができて、中にボタンがあってページのソースコードの組み合わせのキーを開けて、私のここはcrtl+uです
あまり話さないで、コードをつけてください.
import requests,os
from lxml import etree
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5383.400 QQBrowser/10.0.1313.400'}

def getbookname(url):
    html=requests.get(url,headers=headers)
    objects=etree.HTML(html.text)
    objs=objects.xpath("//ul[@class='all-img-list cf']/li")
    urlbox=[]
    for obj in objs:
        title=obj.xpath('div[2]/h4/a/text()')[0]
        bigurls=obj.xpath('div[2]/h4/a/@href')[0]
        bigurl='https:'+bigurls+'#Catalog'
        #           
        parentfilename='D:/    /'+title
        info = {
            'title': title,
            'parentfilename':parentfilename,
            'bigurl': bigurl
        }
        urlbox.append(info)
        #          
        if not os.path.exists(parentfilename):
            os.makedirs(parentfilename)
    # print(urlbox)
    return urlbox

def getbookurls(url):
    charpters = requests.get(url, headers=headers)
    objects = etree.HTML(charpters.text)
    objs=objects.xpath("//ul[@class='cf']/li")
    tinybox=[]
    for obj in objs:
        try:
            charpnames=obj.xpath('a/text()')[0]
            charpurls=obj.xpath('a/@href')[0]
            info={
                    'charpnames':charpnames,
                    'charpurls':'https:'+charpurls
                }
            tinybox.append(info)
            # print(charpnames,charpurls)
        except:
            pass
    return tinybox

def getcontent(url):
    content = requests.get(url, headers=headers)
    objects = etree.HTML(content.text)
    objs=objects.xpath("//div[@class='read-content j_readContent']/p/text()")
    neirong=[]
    for obj in objs:
        obj=obj.replace('\u3000\u3000','')
        print(obj,end='')
        neirong.append(obj)
    return neirong


def main(url):
    bookurls=getbookname(url)
    for bookurl in bookurls:
        subfilename=bookurl['parentfilename']
        # print(subfilename)
        get=getbookurls(bookurl['bigurl'])
        #          
        for g in get:
            charptername=subfilename+'/'+g['charpnames']
            if not os.path.exists(charptername):
                os.makedirs(charptername)
            bs=getcontent(g['charpurls'])
            with open('%s/%s.txt' % (charptername, g['charpnames']), 'w') as f:
                for b in bs:
                    f.write(b)

if __name__ == '__main__':
    url = 'https://www.qidian.com/free/all?page=1&vip=hidden&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=1'
    main(url)#                  

これはまったく基礎がなくて、すべて基礎知識で、読めないなら基礎知識を復習することができます