【问题标题】:How can i call URL's from text file one by one如何从文本文件中一一调用 URL
【发布时间】:2017-02-04 08:32:38
【问题描述】:

我想在一个网站上解析一些 URL,并且我创建了一个文本文件,其中包含我想要解析的所有链接。如何在 python 程序中从文本文件中一一调用此 URL。

from bs4 import BeautifulSoup
import requests

soup = BeautifulSoup(requests.get("https://www.example.com").content, "html.parser")

for d in soup.select("div[data-selenium=itemDetail]"):
    url = d.select_one("h3[data-selenium] a")["href"]
    upc = BeautifulSoup(requests.get(url).content, "html.parser").select_one("span.upcNum")
    if upc:
        data = json.loads(d["data-itemdata"])
        text = (upc.text.strip())
        print(upc.text)
        outFile = open('/Users/Burak/Documents/new_urllist.txt', 'a')
        outFile.write(str(data))
        outFile.write(",")
        outFile.write(str(text))               
        outFile.write("\n")
        outFile.close()

urllist.txt

https://www.example.com/category/1
category/2
category/3
category/4

提前致谢

【问题讨论】:

    标签: python parsing web-scraping beautifulsoup


    【解决方案1】:

    使用上下文管理器:

    with open("/file/path") as f:
        urls = [u.strip('\n') for u in f.readlines()]
    

    您获得了包含文件中所有 url 的列表,然后可以随意调用它们。

    【讨论】:

    • 我已经编辑了我的问题。我无法按照我想要的方式运行代码。请你看一下。
    • 你的代码有什么问题?它返回给你的错误是什么?
    • 如果我一一放置链接,代码就可以工作,但我创建了包含我想要抓取的所有链接的列表。不是一个一个地放置链接,而是从 txt 文件中获取链接,一旦它抓取了第一个链接,然后继续下一个链接。
    • 您要做的是将 json 转储到 .txt 中?您在示例中给我们的 urllist.txt 是什么?
    • 我的意思是,如果我创建包含我想要抓取的所有链接的 txt 文件,有什么办法可以做。假设我在那个 txt 文件上有 20 个链接。当我运行程序时,抓取了第一个链接,然后传递给其他链接,直到最后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2019-02-04
    相关资源
    最近更新 更多