鱼C论坛

 找回密码
 立即注册
查看: 1468|回复: 3

[已解决]我这个代码为什么没反应啊

[复制链接]
发表于 2021-10-21 16:58:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import json
import requests
from requests.exceptions import RequestException
import re
import time

def get_one_page(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
        }
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.content.decode('ANSI')
        return None
    except RequestException:
        return None

url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/left.htm'

html = get_one_page(url)
from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'lxml')

soup.prettify()
data_name_list = []
data_xls_list = []
pre_url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/'
for ul in soup.find_all('ul'):
    for li in ul.find_all(name='li'):
        a = li.a
        #数据格式为xls,去掉其他的
        if a != None and a.attrs['href'][-1] != 'm':
            data_name_list.append(li.get_text())
            data_xls_list.append(pre_url + a.attrs['href'])

import urllib
import os
path = 'C:\\Users\\'
i = 0
for url in data_xls_list:
    print(url)
    filename = os.path.join(path, data_name_list[i] + '.xls')
    urllib.request.urlretrieve(url, filename)
    i += 1
最佳答案
2021-10-21 18:54:09
  1. def get_one_page(url):
  2.     try:
  3.         headers = {
  4.             'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
  5.         }
  6.         response = requests.get(url, headers=headers)
  7.         if response.status_code == 200:
  8.             return response.content.decode('ANSI')
  9.         return None
  10.     except RequestException:
  11.         return None


  12. url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/left.htm'

  13. html = get_one_page(url)

  14. soup = BeautifulSoup(html, 'lxml')

  15. soup.prettify()
  16. data_name_list = []
  17. data_xls_list = []
  18. pre_url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/'
  19. count = 0
  20. for ul in soup.find_all('ul'):
  21.     # print(type(ul))
  22.     for li in ul.find_all(name='li'):

  23.         try:
  24.             a = li.a['href']  # 获取href str
  25.             # print(li.a['href'])
  26.             # print(li.a['href'][-1])
  27.             # print(a, li.get_text())
  28.         except:
  29.             pass
  30.         if li.a != None and a[-1] == 'm':
  31.             data_name_list.append(li.get_text())
  32.             data_xls_list.append(pre_url + a)
  33.     break
  34. path = 'C:\\Users\\'
  35. i = 0
  36. for url in data_xls_list:
  37.     print(url)
  38.     filename = os.path.join(path, data_name_list[i] + '.xls')
  39.     urllib.request.urlretrieve(url, filename)
  40.     i += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-21 18:43:30 | 显示全部楼层
  1. if a != None and a.attrs['href'][-1] != 'm':
复制代码

你这是想爬啥?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-21 18:51:44 | 显示全部楼层

你这个判断导致后面的一个都拿不到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-21 18:54:09 | 显示全部楼层    本楼为最佳答案   
  1. def get_one_page(url):
  2.     try:
  3.         headers = {
  4.             'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
  5.         }
  6.         response = requests.get(url, headers=headers)
  7.         if response.status_code == 200:
  8.             return response.content.decode('ANSI')
  9.         return None
  10.     except RequestException:
  11.         return None


  12. url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/left.htm'

  13. html = get_one_page(url)

  14. soup = BeautifulSoup(html, 'lxml')

  15. soup.prettify()
  16. data_name_list = []
  17. data_xls_list = []
  18. pre_url = 'http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/'
  19. count = 0
  20. for ul in soup.find_all('ul'):
  21.     # print(type(ul))
  22.     for li in ul.find_all(name='li'):

  23.         try:
  24.             a = li.a['href']  # 获取href str
  25.             # print(li.a['href'])
  26.             # print(li.a['href'][-1])
  27.             # print(a, li.get_text())
  28.         except:
  29.             pass
  30.         if li.a != None and a[-1] == 'm':
  31.             data_name_list.append(li.get_text())
  32.             data_xls_list.append(pre_url + a)
  33.     break
  34. path = 'C:\\Users\\'
  35. i = 0
  36. for url in data_xls_list:
  37.     print(url)
  38.     filename = os.path.join(path, data_name_list[i] + '.xls')
  39.     urllib.request.urlretrieve(url, filename)
  40.     i += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-15 05:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表