【问题标题】:Why does my looping variable not convert to a string?为什么我的循环变量不转换为字符串?
【发布时间】:2020-03-13 07:48:21
【问题描述】:

我已经编写了一段 Python 代码来从网站上抓取数据已有几年了。为此,我创建了一个 for 循环来迭代多年,并使用字符串导航到网站。见下文:

from selenium import webdriver
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import pandas as pd

URL = 'url'    
for year in range(2012,2021):
    type(year)
    stryear = str(year)

    driver.get(URL + stryear)
    content = driver.page_source
    soup = BeautifulSoup(content,features="lxml")

#Rest of code

出于某种原因,第一次迭代一切正常。在运行调试模式时,我看到在第二次迭代中,变量 year 是一个值为 2013 的整数(如预期的那样)。然而,变量 stryear 的类型为 {Resultset: 0} [],来源为 {SoupStrainer} 2013|{}。

显然,我没有在代码的其他任何地方声明 stryear。我需要 stryear 是一个包含年份的字符串。为什么变量 stryear 的行为不符合我的预期?

【问题讨论】:

    标签: python-3.x web-scraping beautifulsoup


    【解决方案1】:

    检查您的进口。 str() 很可能是从 Soup 库本地导入的,或者是由它全局获取的 monkey patched

    【讨论】:

    • 确实,通过使用 stryear = year.__str__() 代码确实可以工作
    猜你喜欢
    • 2017-11-11
    • 2020-01-28
    • 1970-01-01
    • 2020-05-04
    • 2020-12-24
    • 2020-01-24
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    相关资源
    最近更新 更多