Удалить определенный вызов ajax из URL - PullRequest
0 голосов
/ 17 декабря 2018

Я только что начал просматривать веб-страницы с помощью Python, и у меня возникла проблема.

Я просматривал различные страницы https://upplysing.se, и мне нужно стереть определенную часть из раздела кнопки разбиения на страницы.Href структурирован следующим образом:

https://upplysning.se/person/?x=1204&where=Sveav%e4gen+Stockholm&m=1&sl=detail&page=2

Мне нужно удалить часть &sl=detail из URL, но я не совсем понимаю, как это сделать.Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете использовать urllib по максимуму и разложить весь URL на части, удалить часть sl и заново составить целое:

def remove_url_query_arg(urlstring, argname):

  url = urlparse(urlstring)
  query = url.query
  args = parse_qsl(query)

  clean_args = [(k, v) for k, v in args if k != argname]

  clean_query = urlencode(clean_args)
  clean_url = urllib.parse.ParseResult(
    scheme=url.scheme,
    netloc=url.netloc,
    path=url.path,
    params=url.params,
    fragment=url.fragment,
    query=clean_query)

  return urlunparse(clean_url)

Это оставляет знания о том, как извлекать и вставлять вещи в ииз строк URL, где он принадлежит.

0 голосов
/ 17 декабря 2018

Вы можете использовать это

import urllib.parse as urlparse
url = 'https://upplysning.se/person/?x=1204&where=Sveav%e4gen+Stockholm&m=1&sl=detail&page=2'
parsed = urlparse.urlparse(url)

url = url.replace('&sl='+urlparse.parse_qs(parsed.query)['sl'][0],'')
print(url)#prints https://upplysning.se/person/?x=1204&where=Sveav%e4gen+Stockholm&m=1&page=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...