鱼C论坛

 找回密码
 立即注册
查看: 1260|回复: 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
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)

soup = BeautifulSoup(html, 'lxml')

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

        try:
            a = li.a['href']  # 获取href str
            # print(li.a['href'])
            # print(li.a['href'][-1])
            # print(a, li.get_text())
        except:
            pass
        if li.a != None and a[-1] == 'm':
            data_name_list.append(li.get_text())
            data_xls_list.append(pre_url + a)
    break
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-21 18:43:30 | 显示全部楼层
if a != None and a.attrs['href'][-1] != 'm':
你这是想爬啥?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你这个判断导致后面的一个都拿不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-21 18:54:09 | 显示全部楼层    本楼为最佳答案   
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)

soup = BeautifulSoup(html, 'lxml')

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

        try:
            a = li.a['href']  # 获取href str
            # print(li.a['href'])
            # print(li.a['href'][-1])
            # print(a, li.get_text())
        except:
            pass
        if li.a != None and a[-1] == 'm':
            data_name_list.append(li.get_text())
            data_xls_list.append(pre_url + a)
    break
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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