文本文件中的多个URL - BeautifulSoup Scraping

时间:2016-08-16 17:26:59

标签: python beautifulsoup

我在urls.txt

所在的目录中有一个文本文件script.py

urls.txt有一个包含多个网址的列表,每行一个。

我试图一次性抓取所有网址并提取特定div

的内容

div在每个网址上多次出现

这是我的脚本

import requests
from bs4 import BeautifulSoup
from urllib import urlopen

with open('urls.txt') as inf:
    urls = (line.strip() for line in inf)
    for url in urls:
        site = urlopen(url)   
        soup = BeautifulSoup(site, "lxml")
        for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}):
            print item.text

脚本只返回列表中最后一个网址的内容,而不是从urls.txt中的所有网址返回内容。

我的脚本没有返回任何错误,所以我不确定我哪里出错了。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

似乎是一个小的身份错误: 看看这个街区:

for url in urls:
    site = urlopen(url)   
    soup = BeautifulSoup(site, "lxml")
    for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}):
    print item.text

将其更改为:

for url in urls:
    site = urlopen(url)   
    soup = BeautifulSoup(site, "lxml")
    for item in soup.find_all("div", {"class": "vm-product-descr-container-1"}):
        print item.text

这样,打印将在内部for循环中的每次迭代中执行。