import urllib.request
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = 'http://dnedesign.us.to/tables/'
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")
status = []
for div in soup.find_all('div', attrs={'class':'mobile-menu-anchor fixed-primary-menu'}):
print (''.join(div['id']))
Вы можете изменить значение в url
на фактический URL-адрес, имя class
в коде с фактическим именем класса и изменить id
на data-fmid
. Или, если вы хотите получить имя class
и id
в каждом div
, вы можете использовать это loop
:
for div in soup.find_all('div'):
try:
print ('id : ' + ''.join(div['id']))
print ('class : ' + ' '.join(div['class']))
print()
except:
pass
Если вы звоните в веб-сервис Amazon, тоже посмотрите цены или информацию о продукте, ваш ключ веб-сервиса Amazon будет отключен и ваше приложение перестанет работать.
Посмотрите на условия обслуживания веб-сервисов Amazon, использование мобильных клиентов строго запрещено:
https://affiliate-program.amazon.com/gp/advertising/api /detail/agreement.html
i Я выяснил это нелегко, когда в моем собственном приложении мой ключ AWS был отключен в производственном приложении. Я прочитал TOS, но на самом деле его там не было, как вы можете видеть по ссылке выше на некоторые другие неясные детали использования. Вы не думаете, что партнерская программа будет иметь какое-либо отношение к API, но это так.
Вы можете найти подробную информацию о других приложениях, заблокированных в этой статье TechCrunch:
Я опубликовал одно решение для этого здесь , которое возвращает данные в кодировке Base64, которые запрашивает AWS.
Я потратил около 4 часов на поиски в Google способов вычислить неключевой SHA1 на iPhone, который соответствовал бы результатам функции sha1 () в php. Вот результат:
#import <CommonCrypto/CommonDigest.h>
NSString *hashkey = <your data here>;
// PHP uses ASCII encoding, not UTF
const char *s = [hashkey cStringUsingEncoding:NSASCIIStringEncoding];
NSData *keyData = [NSData dataWithBytes:s length:strlen(s)];
// This is the destination
uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
// This one function does an unkeyed SHA1 hash of your hash data
CC_SHA1(keyData.bytes, keyData.length, digest);
// Now convert to NSData structure to make it usable again
NSData *out = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
// description converts to hex but puts <> around it and spaces every 4 bytes
NSString *hash = [out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
// hash is now a string with just the 40char hash value in it
Надеюсь, это поможет другим, кто борется с SHA1 на iPhone
// This is my code used in my Twitter connection, and working well for me.
// KeithF's code was a big help!
//
// This is a category added to NSData.
@implementation NSData (EOUtil)
- (NSData*)dataByHmacSHA1EncryptingWithKey:(NSData*)key
{
void* buffer = malloc(CC_SHA1_DIGEST_LENGTH);
CCHmac(kCCHmacAlgSHA1, [key bytes], [key length], [self bytes], [self length], buffer);
return [NSData dataWithBytesNoCopy:buffer length:CC_SHA1_DIGEST_LENGTH freeWhenDone:YES];
}
@end