gpt4 book ai didi

python - 使用 Python/BeautifulSoup 迭代 .txt 文件中的多个 URL

转载 作者:行者123 更新时间:2023-12-01 06:01:48 25 4
gpt4 key购买 nike

我正在尝试创建一个脚本,该脚本采用包含多行 YouTube 用户名的 .txt 文件,将其附加到 YouTube 用户主页网址,然后抓取以获取个人资料数据。

下面的代码为我提供了一个用户想要的信息,但我不知道从哪里开始导入和迭代多个 URL。

#!/usr/bin/env python
# -- coding: utf-8 --
from bs4 import BeautifulSoup
import re
import urllib2

# download the page
response = urllib2.urlopen("http://youtube.com/user/alxlvt")
html = response.read()

# create a beautiful soup object
soup = BeautifulSoup(html)

# find the profile info & display it
profileinfo = soup.findAll("div", { "class" : "user-profile-item" })
for info in profileinfo:
print info.get_text()

有人有什么建议吗?

例如,如果我有一个 .txt 文件,内容如下:

username1
username2
username3
etc.

我怎样才能迭代这些,将它们附加到http://youtube.com/user/%s ,并创建一个循环来提取所有信息?

最佳答案

如果您不想使用实际的抓取模块(例如 scrapy、mechanize、selenium 等),您可以继续迭代您所编写的内容。

  1. 使用文件对象上的迭代来逐行读取关于文件对象的一些事情,一个简单的事实是,如果用“rb”打开它们,它们实际上会调用 readline()作为它们的迭代器,因此您只需执行 for line in file_obj 即可在文档中逐行移动。
  2. 连接 url 我在下面使用了 +,但您也可以使用连接函数。
  3. 制作一个网址列表 - 让您可以错开您的请求,这样您就可以执行 compassionate screen scraping.

    # Goal: make a list of urls
    url_list = []

    # use a try-finally to make sure you close your file.
    try:
    f = open('pathtofile.txt','rb')
    for line in f:
    url_list.append('http://youtube.com/user/%s' % line)
    # do something with url list (like call a scraper, or use urllib2
    finally:
    f.close()

编辑:Andrew G 的字符串格式更清晰。 :)

关于python - 使用 Python/BeautifulSoup 迭代 .txt 文件中的多个 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com