你好我现在正在使用Python 3,BeautifulSoup 4,以及要求从supremenewyork.com UK获取一些信息。我已经在脚本中实现了一个代理脚本(我知道它可以工作)。唯一的问题是这个网站不喜欢自动抓取这些信息的程序,所以他们决定加扰这个脚本,我认为它不能用作文本。
我的问题:有没有办法在不使用.text
的情况下获取文本和/或有没有办法让脚本读取文本?当它看到#
之类的特殊字符跳过它或者看到&
时看到;
跳过它直到看到supremetshirt
时才会看到文字?
因为基本上这个网站如何扰乱文本是通过这样做。下面是一个示例,检查元素时显示的文本是:

应该说“至尊T恤”等等(你明白了,他们不会用字母来加扰数字和特殊键)
当您使用英国最高网站上的VPN检查元素时,此import requests
from bs4 import BeautifulSoup
categorys = ['jackets', 'shirts', 'tops_sweaters', 'sweatshirts', 'pants', 'shorts', 't-shirts', 'hats', 'bags', 'accessories', 'shoes', 'skate']
catNumb = 0
#use new proxy every so often for testing (will add something that pulls proxys and usses them for you.
UK_Proxy1 = '51.143.153.167:80'
proxies = {
'http': 'http://' + UK_Proxy1 + '',
'https': 'https://' + UK_Proxy1 + '',
}
for cat in categorys:
catStr = str(categorys[catNumb])
cUrl = 'http://www.supremenewyork.com/shop/all/' + catStr
proxy_script = requests.get(cUrl, proxies=proxies).text
bSoup = BeautifulSoup(proxy_script, 'lxml')
print('\n*******************"'+ catStr.upper() + '"*******************\n')
catNumb += 1
for item in bSoup.find_all('div', class_='inner-article'):
url = item.a['href']
alt = item.find('img')['alt']
req = requests.get('http://www.supremenewyork.com' + url)
item_soup = BeautifulSoup(req.text, 'lxml')
name = item_soup.find('h1', itemprop='name').text
#name = item_soup.find('h1', itemprop='name')
style = item_soup.find('p', itemprop='model').text
#style = item_soup.find('p', itemprop='model')
print (alt +(' --- ')+ name +(' --- ')+ style)
#print(alt)
#print(str(name))
#print (str(style))
会自动突出显示在框中,并且与文本(根本不突出显示)不同。每当我在没有代理代码的情况下运行我的脚本到我的本地supremenewyork.com时,它工作正常(但只是因为代码,而不是在我的本地网站上乱码,我想从英国网站上提取这些信息)任何想法?这是我的代码:
str
当我运行此脚本时,我收到此错误:
name = item_soup.find('h1',itemprop ='name')。text AttributeError:'NoneType'对象没有属性'text'
所以我做的是我对上面标记为哈希标记的东西进行了哈希标记,并对其他类似但不同的东西进行哈希标记,并且我得到某种print(str(name))
错误,所以我尝试了None
。我可以打印alt罚款(每个脚本,alt不会被打乱),但是当打印名称和样式时,打印的每个alt代码下的所有打印都是lexsort
。
我一直在努力解决这个问题,并且没有解决方案。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
我使用这个解决方案解决了我自己的答案:
thetable = soup5.find('div', class_='turbolink_scroller')
items = thetable.find_all('div', class_='inner-article')
for item in items:
alt = item.find('img')['alt']
name = item.h1.a.text
color = item.p.a.text
print(alt,' --- ', name, ' --- ',color)