作者: _月光临海 | 来源:发表于2018-05-31 15:37 被阅读0次

基础爬虫

# Author:Freeman
import urllib.request, urllib.parse  # parse 这个没用上,删掉也没影响
import re  # 正则

pattern = re.compile(r'<div class="j-r-list-c-desc">\s+(.*)\s+</div>')


# .代表除 \n 外所有字符,* 代表多个,\s+ 代表若干个空格,
# r''代表不转义。这里是需要传入一个规则,规则中需要 \s+ ,而如果不用 r'' 的话,传入 compile 的 \s+ 会被转换为 '空字符'

# 向指定 url 的页面发送请求,返回该页面的 html 字符串
def open_url(url):
    req = urllib.request.Request(url)
    req.add_header("user-agent",
                   "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")
    res = urllib.request.urlopen(req)
    html = res.read().decode("utf-8")  # 这里 res.read() 直接读到的是 bytes 类型,需要解码为 utf-8
    return html  # str


# 输入开始页码和结束页码
def page_counts(start_page_num, end_page_num):
    all_page_list = []
    for i in range(start_page_num, end_page_num + 1):  # 左开右闭 因此 +1
        cur_page_html = open_url("http://www.budejie.com/text/%s" % i)  # 不得姐的翻页就是这么排的
        one_page_list = re.findall(pattern, cur_page_html)  # 匹配所有符合 pattern 规则的字符串,组成一个 list
        # 把单个页面的 list 逐个取出,放到存放所有数据的 list 中,便于后期写入本地文件
        for item in one_page_list:
            all_page_list.append(item)
    return all_page_list        # list


def save(start_page_num, end_page_num):
    with open("a.txt", "w", encoding="utf-8") as f:     # with 方法可以打开文件,并在 with 调用结束后自动关闭文件
        for item in page_counts(start_page_num, end_page_num):
            if r'<br />' in item:
                new_item = re.sub(r'<br />', "\n", item)
                f.write(new_item)
            else:
                new_item = item + "\n"
                f.write(new_item)

save(1, 1)
得手动创建个a.txt

相关文章

  • 爬爬爬爬爬爬爬

    爬爬爬爬爬爬爬 只要你爬得足够高 人们便会觉得你如飞在云端般轻飘

  • 我爬爬爬

    2018年1月16日,我半岁了。这天妈妈又折腾了,她说“今天宝宝来学习一下爬爬。”她才不管什么“二抬四翻六坐七滚八...

  • 华山爬爬爬!!!

    7:00到8:00 到第一关 五里关 感觉整个山都在跟我蒸桑拿,它起雾,我出汗! 在桃林道院把羊毛开衫脱掉!顿时觉...

  • 新奇爬爬爬

  • 爬爬

    2018.9.12 安安181天 从最早的后退式爬,到青蛙式跃,到如今能够用手臂撑着移动,还能越过障碍爬,进步很神...

  • 爬爬

    脑子放空 嘻嘻 软软的 有水果补充维生素 想想水果的使命也算达到了吧 在想 我们来世上都干什么啊…… 睡了睡了 明...

  • 轨迹

    就在刚刚 看见一只毛毛虫 爬 爬 爬 爬 爬 爬 ...

  • 比慢爬爬爬

    暑假,小明一家去海滩玩。 海滩好美哇!洁白的浪花,美丽的贝壳,柔软的沙子。 小明突然发现...

  • 147-爬爬爬

    宝宝翻身一水儿的麻利!另外,趴着的时候,她撅起自己的小屁股,抬着腿,是要爬啊,姥姥在脚底板推了推,给她加了把劲儿,...

  • 《摔爬爬》

    俊云降白雾,踉跄一谪仙

网友评论

      本文标题:

      本文链接:https://www.haomeiwen.com/subject/ipnlcftx.html