m0_46686727 2021-07-30 16:07 采纳率: 0%
浏览 26

爬虫问题:我的html有啥问题,为什么43行的循环进不去(江苏省就是一个单列,列名城市,13个江苏城市)?

# -*-coding = utf-8 -*-
# @Time : 2021/7/14 0014 下午 5:22
# @Author : TANQ
# @File : .py
# @Software : PyCharm
from bs4 import BeautifulSoup
import re
import urllib.request
import urllib.error
import xlwt
import sqlite3
import pandas as pd
import pandas as pd

df = pd.read_excel('./江苏省.xlsx')
data = []


def main():
    baseurl = "https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_aladin_banner&city=%E6%B1%9F%E8%8B%8F-"
    datalist = getData(baseurl)
    # print(datalist)
    savepath = ".\\江苏省.xlsx"
   # saveDate(datalist, savepath)

findsure = re.compile(
    r'<p class="ProvinceSummary_1-1-309_F8LjRz ProvinceSummary_1-1-309_1RW2uk ProvinceSummary_1-1-309_pBq9kt">(.*)</p>')


def getData(baseurl):
    datalist = []
    for i in range(0, 1):
        url = baseurl + urllib.parse.quote(df['城市'][i])
        html = askURL(url)
        soup = BeautifulSoup(html, "html.parser")
        # print("-" * 100)
        # print(url)
        # print("-" * 100)

        # print("-" * 100)
        # print(soup)
        # print("-" * 100)
        for item in soup.find_all('div', class_="item"):

            data = []
            data2 = []
            item = str(item)

            sure = re.findall(findsure, item)[0]

            data.append(sure)

            datalist.append(data)

    return datalist



def askURL(url):

    head = {
        "User-Agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 84.0.4147.89 Safari / 537.36"}
    request = urllib.request.Request(url, headers=head)
    response = urllib.request.urlopen(request)
    html = response.read().decode("utf-8")
    return html


def saveDate(datalist,savepath):
    print("saving....")
    book = xlwt.Workbook(encoding="utf-8",style_compression=0)
    sheet = book.add_sheet('江苏省',cell_overwrite_ok=True)
    col = ("现有确诊")
    print(0)
    for i in range(0,2):
        sheet.write(0,i,col[i])
    for i in range(0,990):
        print("第%d条" %(i+1))
        data = datalist[i]
        for j in range(0,2):
            sheet.write(i+1,j,data[j])
    book.save('江苏省.xlsx')
if __name__ == "__main__":
    main()#-12

  • 写回答

1条回答 默认 最新

  • python收藏家 2021-07-30 17:00
    关注

    打印看看for循环里面item的值

    评论

报告相同问题?

问题事件

  • 修改了问题 7月30日
  • 创建了问题 7月30日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,