首页 > 解决方案 > 我使用 python pandas 来提取一些数据(页面标题),但输出的顺序与我在代码中输入的 URL 的顺序不同

问题描述

所以我编写了代码并运行它并获得了 .xlsx 文件,但输出与我放入代码中的 Url 列表的顺序不同。

#importing the libraries
import re
import lxml
import  chardet
from os import truncate
import bs4
from bs4 import BeautifulSoup
import multiprocessing
import requests
import pandas as pd
from fake_useragent import UserAgent
import numpy as np

urls = list(('https://isabad.com/advanced-professional-email-templates-opencart-extension' ,
'https://isabad.com/seo-basic-pack-opencart-extension',
'https://isabad.com/x-shipping-pro',
'https://isabad.com/bot-blocker-opencart-extension',
'https://isabad.com/opencart-mobile-application'
))

dit = {}
user_agent = UserAgent()
for url in urls:
        data = requests.get(url, headers={"user-agent": user_agent.chrome})
        soup = bs4.BeautifulSoup(data.content, "lxml")
        dit[url] = soup.find_all("title")
        ex = pd.DataFrame({"title": dit ,})
        print(ex)
        ex.to_excel('sasa.xlsx', index=False, engine='xlsxwriter')


我该如何解决这个问题?

标签: pythonexcelpandasbeautifulsoup

解决方案


您正在使用set数据结构来存储 URL 列表,而setpython 中的数据结构是无序的数据结构。要以相同的顺序输出,您应该将 URL 存储在list数据结构中,如下所示:

urls = [
  'https://www.sample.com/search/category-mobile/' ,
  'https://www.sample.com/search/category-tablet-ebook-reader',
  'https://www.sample.com/search/category-laptop/',
  'https://www.sample.com/search/category-computer-parts/',
  'https://www.sample.com/search/category-office-machines/'
]

干杯!


推荐阅读