美文网首页初见
学写爬虫日记一2018-10-06

学写爬虫日记一2018-10-06

作者: cnBrave | 来源:发表于2018-10-06 15:40 被阅读7次

    from bs4 import BeautifulSoup

    from urllib import request

    from http  import cookiejar

    import re

    from openpyxl import workbook# 写入Excel表所用

    from openpyxl import load_workbook# 读取Excel表所用

    url= "http://www.qianyan001.com/"

    # 使用cookie管理

    cookie_jar= cookiejar.CookieJar()  # 构建一个CookieJar对象实例来保存cookie

    # 使用HTTPCookieProcessor()来创建cookie处理器对象,参数为CookieJar()对象

    handler= request.HTTPCookieProcessor(cookie_jar)

    opener= request.build_opener(handler)  # 构建打开器

    request.install_opener(opener)

    response= request.urlopen(url)

    html= response.read().decode()

    print(response.getcode())  # 状态

    print(cookie_jar)

    # print(html)

    soup= BeautifulSoup(html, "html.parser")

    find_html= soup.find(class_="r_new_list")

    find_li= find_html.find_all("li")

    # 填充常跟对齐一起使用

    # ^、<、>分别是居中、左对齐、右对齐,后面带宽度

    # :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

    with open("study_1_bs4.txt", "w") as f:

        for liin find_li:

            f.write(

                li.find("em").get_text() + " " + "{0:{1}<22}".format(li.find("a").string, chr(12288)) + "\t" + li.find("a")[

                    "href"] + "\n")

    print("成功爬取数据:")

    with open("study_1_bs4.txt", "r") as f:

        print(f.read())

    #  创建Excel表并写入数据

    wb= workbook.Workbook()  # 创建Excel对象

    wb["Sheet"].title= "军事新闻"

    # ws = wb.create_sheet("军事新闻", 0)  # 插入到最开始的位置

    ws= wb.active# 获取当前正在操作的表对象

    #  往表中写入标题行,以列表形式写入!

    ws.append(['序号', '标题', '链接'])

    for liin find_li:

        ws.append([li.find("em").get_text(), li.find("a").string, li.find("a")[

            "href"]])

    wb.save('军事新闻.xlsx')

    # 读取Excel

    print("===========读取Excel===========")

    wb_load= load_workbook('军事新闻.xlsx')

    sheet= wb['军事新闻']

    num= 1

    for rowin sheet.rows:

        for cellin row:

            if num== 2:

                print("{0:{1}^30}".format(cell.value, chr(12288)), "\t", end="")

            else:

                print(cell.value, "\t", end="")

            num+= 1

        print("")

    相关文章

      网友评论

        本文标题:学写爬虫日记一2018-10-06

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