Python 如何防止重复链接被解析?
我已经用python编写了一些脚本,以获取当前运行良好的网页中的下一页链接。这个刮刀唯一的问题是它不能摆脱重复链接。希望有人能帮我做到这一点。我试过:Python 如何防止重复链接被解析?,python,python-3.x,web-scraping,css-selectors,web-crawler,Python,Python 3.x,Web Scraping,Css Selectors,Web Crawler,我已经用python编写了一些脚本,以获取当前运行良好的网页中的下一页链接。这个刮刀唯一的问题是它不能摆脱重复链接。希望有人能帮我做到这一点。我试过: import requests from lxml import html page_link = "https://yts.ag/browse-movies" def nextpage_links(main_link): response = requests.get(main_link).text tree = html.
import requests
from lxml import html
page_link = "https://yts.ag/browse-movies"
def nextpage_links(main_link):
response = requests.get(main_link).text
tree = html.fromstring(response)
for item in tree.cssselect('ul.tsc_pagination a'):
if "page" in item.attrib["href"]:
print(item.attrib["href"])
nextpage_links(page_link)
这是我得到的部分图像:
您可以将set用于以下目的:
import requests
from lxml import html
page_link = "https://yts.ag/browse-movies"
def nextpage_links(main_link):
links = set()
response = requests.get(main_link).text
tree = html.fromstring(response)
for item in tree.cssselect('ul.tsc_pagination a'):
if "page" in item.attrib["href"]:
links.add(item.attrib["href"])
return links
nextpage_links(page_link)
您还可以使用
scrapy
,默认情况下会限制重复 制作一个集合,添加所有已处理的链接,并在处理之前检查链接是否已经存在。感谢Sumit Gupta的回答。它起作用了。您应该从脚本中取出print语句。顺便说一句,如果项目管道处理正确,scrapy将处理重复项。谢谢,删除了打印语句:)