(四)爬取出版社信息并存储到Excel中

(一)安装xlsxwriter、xlrd模块

首先打开cmd,通过下列指令安装XlsxWriter(注意拼写)模块和xlrd模块

pip install Xlsxwriter

pip install xlrd

 

如果cmd下pip命令无法使用,则应在系统环境变量中添加python安装路径下的Script文件夹。

一台电脑若同时安装python 3.6.x 和 2.7.x版本,lib将会安装在3.6.x版本下。安装成功后,在Pycharm下的Settings - Project Interpreter可查看到安装的模块。

具体使用信息可参见https://xlsxwriter.readthedocs.io/getting_started.html

(二)爬取出版社信息(使用3.6.x版本)

import urllib.request
import re
import xlsxwriter
import xlrd
import os

def build_xls(name):
    i=1
    if os.path.exists(target_dir+name+'.xlsx'):
        while os.path.exists(target_dir+name+'(%s).xlsx' % i):
            i+=1
        path=target_dir+name+'(%s).xlsx'% i
    else:
        path=target_dir+name+'.xlsx'
    return xlsxwriter.Workbook(path)
def build_sheet(f,name): return f.add_worksheet(name)
def open_xls(dir): try: return xlrd.open_workbook(dir) except Exception as err: print(err) target_dir=r'c:/backup/' data=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8")
#注意需要decode为utf-8格式,否则无法使用re模块进行正则表达式匹配
#print(len(data)) pat='<div class="name">(.*?)</div>' ans=re.compile(pat).findall(data) f=build_xls('book') worksheet=build_sheet(f,'publisher') worksheet.write(0,0,r"出版社信息",f.add_format({'bold':1})) row=1 for i in range(len(ans)): worksheet.write(row,0,ans[i]) row+=1 f.close()

 

(三)爬取出版社信息和作品数量,并存入不同的选项卡

import urllib.request
import re
import xlsxwriter
import xlrd
import os

def build_xls(name):
    i=1
    if os.path.exists(target_dir+name+'.xlsx'):
        while os.path.exists(target_dir+name+'(%s).xlsx' % i):
            i+=1
        path=target_dir+name+'(%s).xlsx'% i
    else:
        path=target_dir+name+'.xlsx'
    return xlsxwriter.Workbook(path)
def build_sheet(f,name):
    return f.add_worksheet(name)
def open_xls(dir):
    try:
        return xlrd.open_workbook(dir)
    except Exception as err:
        print(err)

target_dir=r'c:/backup/'

data=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8")
#print(len(data))
pat='<div class="name">(.*?)</div>'
pat2='<div class="works-num">.*?(\d+).*?</div>'
ans=re.compile(pat).findall(data)
ans2=re.compile(pat2).findall(data)
f=build_xls('book')
worksheet=build_sheet(f,'publisher')
worksheet.write(0,0,r"出版社信息",f.add_format({'bold':1}))
row=1
for i in range(len(ans)):
    worksheet.write(row,0,ans[i])
    row+=1

worksheet=build_sheet(f,'publisher&name')
worksheet.write(0,0,r"出版社信息",f.add_format({'bold':1}))
worksheet.write(0,1,r"作品数量",f.add_format({'bold':1}))
row=1
for i in range(len(ans2)):
    worksheet.write(row,0,ans[i])
    worksheet.write(row,1,ans2[i])
    row+=1

f.close()

 

转载于:https://www.cnblogs.com/yitiaoluyu/p/7720022.html

要在Jupyter Notebook爬取天气信息并保存到Excel,你可以按照以下步骤进行操作: 1. 安装所需的库:确保你已经安装了requests、beautifulsoup4和pandas库。如果没有安装,可以使用以下命令进行安装: ``` !pip install requests !pip install beautifulsoup4 !pip install pandas ``` 2. 导入所需的库: ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 3. 发起HTTP请求并解析HTML: ```python # 发起HTTP请求 url = "你要爬取的天气信息的URL" response = requests.get(url) # 解析HTML soup = BeautifulSoup(response.content, "html.parser") ``` 4. 提取天气信息并保存到DataFrame: ```python # 提取天气信息 # 根据HTML结构,使用合适的选择器提取需要的数据 # 这里以提取日期和温度为例 dates = soup.select("选择器1") temperatures = soup.select("选择器2") # 将提取的数据保存到DataFrame data = {"日期": [], "温度": []} for date, temperature in zip(dates, temperatures): data["日期"].append(date.text) data["温度"].append(temperature.text) df = pd.DataFrame(data) ``` 5. 将DataFrame保存到Excel文件: ```python # 保存DataFrame到Excel文件 df.to_excel("天气信息.xlsx", index=False) ``` 请确保替换代码的"你要爬取的天气信息的URL"为实际的天气信息网页的URL,并根据实际的HTML结构和选择器提取所需的天气信息。 在运行代码之前,确保你已经连接到互联网并能够访问所需的网页。运行代码后,将会在当前工作目录下生成一个名为"天气信息.xlsx"的Excel文件,其包含提取的天气信息。 希望这对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值