Невозможно получить ссылки на eBay из каждого списка - PullRequest
0 голосов
/ 14 октября 2019

Я не могу получить ссылку на каждый листинг на eBay. Я искал по всему Google / StackOverflow и нашел решение, которое заключается в использовании этого "link = items.findAll ('a', href = True)". К сожалению, это не работает для меня, так как это то, что я получаю взамен. Мне нужны только ссылки на ebay.

for items in bs.findAll('li', {'class': 's-item'}):
    links = bs.find_all('a', href=True)
    print(links)

То, что я хочу, чтобы мой код возвращал.

Весь мой код: https://pastebin.com/uNd1th8Z

Большое спасибо. Серьезно.

1 Ответ

1 голос
/ 14 октября 2019

@ Криссал дал вам хорошую рекомендацию, и я сам проверил соскоб с вашего URL. Сложнее всего получить соответствующие ссылки (есть много ненужных ссылок), если вы застряли, вы можете обратиться к моему коду.

browser = webdriver.Chrome('(your_path_here)/chromedriver')
browser.get('https://www.ebay.com/sch/i.html?_from=R40&_nkw=watches&_sacat=0&_pgn=1')
bs = BeautifulSoup(browser.page_source, 'lxml', parse_only=SoupStrainer('a'))

#this is the one liner to get your relevant hrefs, those with class='s-item__link'
ls = [l['href'] for l in bs if (l.has_attr('data-track')&l.has_attr('href')&l.has_attr('class')) if l['class'][0]=='s-item__link']

#print or save to a text file
#print(ls)

#with open('links.txt', 'w', encoding='utf-8') as outfile:
#    outfile.write('\n'.join(ls))

Вывод из печати

https://www.ebay.com/itm/SKMEI-Watch-Mens-Womens-Watches-Waterproof-Sport-Outdoor-LED-Digital-Wristwatch/392260574708?hash=item5b548d5df4:m:myDW5IBI631t2UBz65C2Ztw
https://www.ebay.com/itm/LED-Watches-Men-Women-Sport-Casual-Digital-Army-Military-Silicone-Wrist-Watch/193040878143?hash=item2cf2220a3f:m:m7VH5iopUucVEYPr9y5dfxA
https://www.ebay.com/itm/Men-Women-Leather-Strap-Line-Analog-Quartz-Ladies-Wrist-Watches-Fashion-Watch/202788343863?hash=item2f37209037:m:mOWAjJgHKIYzv8YqDPxLZqA
.
.
.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...