'str'对象没有属性'find_all'

时间:2019-01-26 23:57:54

标签: python python-2.7 web-scraping

我遇到了属性错误:“ str”对象没有属性“ find_all”

我关注了以下信息,但无济于事。仅当包含行print(a ['title'])时,才会出现错误。 我尝试无法解决的encode(“ utf-8”)。

UnicodeEncodeError: 'charmap' codec can't encode characters

代码在下面。它今天开始工作,没有任何更改!在执行find_all时,我确实有重复的代码,以前也在那里,我不知道哪个有效。

import requests # pip install requests
import bs4 # pip install BeautifulSoup4
from bs4 import BeautifulSoup

import pandas as pd # pip install pandas
import time
import io

def sc_data():

    URL = "www.website.com"
    #soup = BeautifulSoup(page.text, "html.parser").encode("utf-8")
    soup = BeautifulSoup(page.text, "html.parser")
    jobs = []
        for div in soup.find_all('div', attrs={'class':'row'}):
            for a in div.find_all('a', attrs={'data-tn-element':'jobTitle'}):
                print(a['title'])

jobs = []
    for div in soup.find_all(name='div', attrs={'class':'row'}):
        for a in div.find_all(name='a', attrs={'data-tn-element':'jobTitle'}):
            jobs.append(a["title"])
            return(jobs)
    print(jobs)

def main():
    sc_data()

main()

我正在做基本的网络抓取。它卡在无法读取编解码器char'u \ 2013和上述错误之间。

1 个答案:

答案 0 :(得分:1)

您的问题缺少一些细节,文献记载不充分。

似乎您正在使用Windows计算机进行开发。

您可以遵循我的以下建议,这可能会解决您的问题或提供有关您的代码的更多详细信息。

  1. 步骤1:

      从远程服务器获取时,
    • 编码为utf-8。
  2. 步骤2:

    • 加载时解码为utf-8。