【问题标题】:How to read links with id and write in output file in python如何读取带有id的链接并在python中写入输出文件
【发布时间】:2018-11-27 05:13:04
【问题描述】:

我正在尝试使用输入文件中的 url 和 id 编写 csv 文件,但我不明白。

我有以下格式的 csv 文件:

ID              Links
P51800010436    https://maharerait.mahaonline.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTcxNzkmRGl2aXNpb249NiZVc2VySUQ9MzQ5MjAmUm9sZUlEPTEmQXBwSUQ9NzUzNjYmQWN0aW9uPVNFQVJDSCZDaGFyYWN0ZXJEPTI2JkV4dEFwcElEPQ%3d%3d
P51800001202    https://maharerait.mahaonline.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTMxOTcmRGl2aXNpb249NiZVc2VySUQ9MjU5MjQmUm9sZUlEPTEmQXBwSUQ9MjM3MzQmQWN0aW9uPVNFQVJDSCZDaGFyYWN0ZXJEPTk3JkV4dEFwcElEPQ%3d%3d
P51800000150    https://maharerait.mahaonline.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTY1NSZEaXZpc2lvbj02JlVzZXJJRD03MjU3JlJvbGVJRD0xJkFwcElEPTExOTY2JkFjdGlvbj1TRUFSQ0gmQ2hhcmFjdGVyRD04MSZFeHRBcHBJRD0%3d
P51800001785    https://maharerait.mahaonline.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTU2NjUmRGl2aXNpb249NiZVc2VySUQ9MjgxODEmUm9sZUlEPTEmQXBwSUQ9MjY4NjcmQWN0aW9uPVNFQVJDSCZDaGFyYWN0ZXJEPTIxJkV4dEFwcElEPQ%3d%3d

我试过的脚本:

from datetime import datetime
start_time = datetime.now()

from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
import requests
import re

import csv

link = []
rera_id = []

with open('D:/TF_Vishnu/link_with_rera_id.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')

    for row in reader:
        rera_id.append(row[0])
        link.append(row[1])

for index, rera_id, url in enumerate(rera_id, link):

    df_url = pd.read_csv(pd.compat.StringIO(url), header=None)

    df_rera_id = pd.read_csv(pd.compat.StringIO(rera_id), header=None)

    html=requests.get(url).content

    soup=BeautifulSoup(html, 'lxml')

    if (soup.find(text="Other Than Individual") == "Other Than Individual"): 

        print ("Processing Other Than Individual Link.......")

        table = soup.find_all("table",{"class":"table table-bordered table-responsive table-striped"})[1]

        df_2 = pd.concat([df_rera_id, df_url, df, df_1], axis=1)

        df_2.to_csv('D:/scrape_data/test.csv', index=False, header=False, mode='a'))

我想使用 pandas 编写 csv 文件,就像第一列 - rera_id,第二个 - 链接,第三个 - 数据,......等等。

请提供帮助并提出建议。如有错误请见谅

出现错误:

TypeError: 'list' 对象不能被解释为整数

【问题讨论】:

  • 你有标题行吗?如果是,则必须忽略它。此外,您对df_urldf_rera_id 的定义让我有些困惑。在那里,您将其指定为另一个 csv 文件。这对我来说似乎是错误的。您给出的列表错误可能在未显示的代码中 (# did something)。希望这几个提示对您有所帮助。
  • 出现错误:for index, rera_id, url in enumerate(rera_id, link): TypeError: 'list' object cannot be interpreted as an integer

标签: python python-3.x pandas beautifulsoup


【解决方案1】:

问题在于您使用了 enumerate 内置函数。第二个(可选)参数不被视为另一个可迭代对象,而是作为枚举变量的初始值(在您的情况下为index) - 这就是它期望和整数的原因。您最好尝试直接枚举reader

with open('D:/TF_Vishnu/link_with_rera_id.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for index, (rera_id, url) in enumerate(reader):
        # Your code below

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多