尝试循环浏览URL列表,并在每页上搜索文本

2024-06-06 11:06:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题。它在URL列表中循环,但不会将每个页面的文本内容添加到预设列表中

我还没有开始处理原始文本。如果我不明白的话,我可能会在我到达那里后提出一个问题

这里怎么了?PRELTS的长度保持为1,即使它似乎在scrape的URL列表中循环

以下是我遇到问题的部分代码:

counter=0
for xa in range(0,len(qresults)):
        pageURL=qresults[xa].format()
        pageresp= requests.get(pageURL, headers=headers)
        if pageresp.status_code==200:
                print(pageURL)
                psoup=BeautifulSoup(pageresp.content, 'html.parser')
                presults=[]
                para=psoup.text
                presults.append(para)
                print(len(presults))
        else: print("Could not reach domain")
print(len(presults))

Tags: 文本url内容列表len页面headersprint
2条回答

好的,我甚至没有看到您在这里循环任何URL,但下面是一个如何实现此类请求的通用示例

import requests
from bs4 import BeautifulSoup

base_url = "http://www.privredni-imenik.com/pretraga?abcd=&keyword=&cities_id=0&category_id=0&sub_category_id=0&page=1"
current_page = 1

while current_page < 200:
    print(current_page)
    url = base_url + str(current_page)
    #current_page += 1
    r = requests.get(url)
    zute_soup = BeautifulSoup(r.text, 'html.parser')
    firme = zute_soup.findAll('div', {'class': 'jobs-item'})

    for title in firme:
        title1 = title.findAll('h6')[0].text
        print(title1)
        adresa = title.findAll('div', {'class': 'description'})[0].text
        print(adresa)
        kontakt = title.findAll('div', {'class': 'description'})[1].text
        print(kontakt)
        print('\n')
        page_line = "{title1}\n{adresa}\n{kontakt}".format(
            title1=title1,
            adresa=adresa,
            kontakt=kontakt
        )
    current_page += 1

你眼前的问题是:

            presults=[]
            para=psoup.text
            presults.append(para)

在每次for迭代中,用空列表替换现有的presults列表并添加一项。在下一次迭代中,再次删除上一个结果

您的初始化只能一次,并且在循环之前

presults = []
for xa in range(0,len(qresults)):

相关问题 更多 >