Как сделать так, чтобы в списке было "или"? - PullRequest
2 голосов
/ 26 марта 2019

Я пытаюсь получить список ссылок из поиска Google:

def google_word(word):
    headers={'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'}
    url = 'https://google.com/search?q={}'.format(word)
    res= requests.get(url, headers=headers)
    tree= html.fromstring(res.text)
    li = tree.xpath("//a[@href]") #list of links that conatin href
    y = [link.get('href') for link in li if link.get('href').startswith("https://") if "google" not in link.get('href')]

Теперь этот код собирает правильную ссылку, которая начинается с "https://", и я хочу добавить"http://" также. Что мне нужно добавить к пониманию списка, чтобы сделать эту работу (я пытаюсь сделать это в одной строке)?

Ответы [ 4 ]

6 голосов
/ 26 марта 2019

Добавить кортежи к стартам с

y = [link.get('href') for link in li if link.get('href').startswith(("https://", "http://")) if "google" not in link.get('href')]
2 голосов
/ 26 марта 2019

Эта строка:

y = [link.get('href') for link in li if link.get('href').startswith("https://") if "google" not in link.get('href')]

Вместо этого должно быть:

y = [link.get('href') for link in li if link.get('href').startswith(("https://", "http://"))]
1 голос
/ 26 марта 2019

Вы можете использовать регулярные выражения, чтобы сделать это. Вот как это сделать:

y = [link.get('href') for link in li if re.match("https*://", link.get('href')) if "google" not in link.get('href')]

Это будет соответствовать от нуля до неограниченного числа вхождений s (в реальных ситуациях будет 0 или 1).

0 голосов
/ 26 марта 2019

Если вы ищете способ получения результатов поиска от Google, я бы посоветовал вам использовать саму библиотеку googlesearch.

Было бы намного проще получить результаты.Нет необходимости очищать всю страницу запроса и искать результаты.Он предоставляет вам как http, так и https ссылки.Вот статья, которая может вам помочь.

https://www.geeksforgeeks.org/performing-google-search-using-python-code/

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