我是Python新手,只是尝试编写一些程序的编码技巧
我在Python 2.7中编写了以下程序,以便从目录中获取配置文件网址 - http://www.uschirodirectory.com/entire-directory/list/alpha/a.html
但是,我注意到提取的URL列表中有很多重复的条目。有人可以查看代码并告诉我是否有我在这里做的事情,或者是否可以进一步优化此代码。
非常感谢
import requests
from bs4 import BeautifulSoup
def web_crawler(max_pages):
p = '?site='
page = 1
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
while page <= max_pages:
for i in alpha:
url = 'http://www.uschirodirectory.com/entire-directory/list/alpha/' + str(i) + '.html' + p + str(page)
code = requests.get(url)
text = code.text
soup = BeautifulSoup(text)
for link in soup.findAll('a',{'class':'btn'}):
href = 'http://www.uschirodirectory.com' + link.get('href')
print(href)
page += 1
i += alpha[0 + 1]
#Run the crawler
web_crawler
答案 0 :(得分:2)
基本上你的代码还可以。您可能会获得大量重复链接,因为目录结果的目的不仅是医生姓名中的第一个字母,还包括公司标题或其他重要数据库字段中的第一个字母。
答案 1 :(得分:2)
您可以将数据存储在列表中,也可以使用以下代码删除重复的网址:
parsedData = []
data = {}
如果没有(d ['url'] ==数据['url']用于数据中的d):
parsedData.append(data)