初入爬虫-爬小说的代码

最近在学python爬虫 写了一个爬小说的代码(直接上代码)
首先是获取网页的url

import ssl
import re
import requests


ssl._create_default_https_context = ssl._create_unverified_context

url = 'http://www.biquge5200.cc/75_75597/'

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh;'
                         ' Intel Mac OS X 10_13_4)'
                         ' AppleWebKit/537.36 (KHTML,'
                         ' like Gecko) Chrome/68.0.3440.106'
                         ' Safari/537.36'}

proxies = {'http': '219.141.153.41:80'}

file_path = '/Users/cardistry_lee/Desktop/'

request = requests.get(url, headers=headers, proxies=proxies)

if request.status_code == 200:
    print(request)

html = request.content.decode('gbk')

reg = re.findall(r'https://.*?\.html', str(html))

然后再是解析获取到的url

import get_xiaoshuo_url as x
from bs4 import BeautifulSoup
import os
import time
import tqdm

def parse_url():
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64)'
                             ' AppleWebKit/537.36 (KHTML, like Gecko)'
                             ' Chrome/27.0.1453.94 Safari/537.36'}

    proxies = {'http': '61.135.217.7:80'}

    file_path = '/Users/cardistry_lee/Desktop/fhdaskfasdk/'

    p = 0
    for j in x.reg:
        url = j

        request = x.requests.get(url, headers=headers, proxies=proxies)

        html = request.content.decode('gbk')

        soup = BeautifulSoup(html, 'lxml')

        title = soup.title.string

        content = soup.find_all('p')

        if not os.path.exists(file_path):
            os.mkdir(file_path)
            os.chdir(file_path)

        with open(file_path + ('%s_%d.txt' % (title, p)), 'w', encoding='utf8') as f:
            print('正在下载:' + str(title))
            for k in tqdm.trange(100):
                time.sleep(0.01)
            for i in content:
                f.write(str(i.string) + '\r\n')
                p += 1

最后定义一个main.py来执行

import parse_url


def main():
    parse_url.parse_url()


if __name__ == '__main__':
    main()

因为是初入爬虫,所以可能代码不是太完善,希望有大佬看到了,可以指点一下QAQ

现在来说一下写这个代码时候的思路吧!
我在写这个代码的时候,首先想的是获取要爬的url
但是中途遇到了一个难点,那就是获取到url之后发现自己不会处理这种多个url的情况,
之前都是看各种urllib, requests这些库的使用方法,然后再自己动手去实现一下,都爬的是单个的url(果然还是技术不行,哇咔咔咔).

但今天不知怎么的,就想到了如果一个文件搞不定就多写几个文件,然后再创建一个main来当程序的入口,可能开窍了吧-_-

然后获取到url之后,我是用的BeautifulSoup来解析的,其他的也不会用,听说貌似还有pyquery什么的,毕竟刚入爬虫的门嘛.

然后我再写完代码之后突发奇想,当我在运行代码的时候网络不好,或者其他原因需要等待很长时间时,就会感觉很无聊,于是搜了一下在下载时,显示进度条的方法,然后就装了一下tqdm,再把tqdm加到了代码里,然后再次运行起来的时候就发现和谐多了QAQ~~

以上就是大概的一些思路(没话说了,emmmmm)

你可能感兴趣的:(爬虫日记)