0

URLリクエストからテキストを抽出しようとしましたが、すべてのdictにテキスト付きのキーが含まれているわけではなく、{k: v[0] for k, v in parse_qs(str).items()}URLに使用しようとすると多くのリクエストが失われるので、試してみstr = urllib.unquote(u[0])ます. その後、次のような文字列を取得します

смотреть лучше не бывает&clid=1955453&win=176
Jade+Jantzen&ie=utf-8&oe=utf-8&gws_rd=cr&ei=FQB0V9WbIoahsAH5zZGACg
как+скрыть+лопоухость&newwindow=1&biw=1366&bih=657&source=lnms&sa=X&sqi=2&pjf=1&ved=0ahUKEwju5cPJy83NAhUPKywKHVHXBesQ_AUICygA&dpr=1
смотреть лучше не бывает&clid=1955453&win=176
2&clid=1976874&win=85&msid=1467228292.64946.22901.24595&text=как выбрать смартфон
маскаи гейла&lr=10750&clid=1985551-210&win=213

そして、私は取得したいです

смотреть лучше не бывает
Jade Jantzen
как скрыть лопоухость
смотреть лучше не бывает
как выбрать смартфон
маскаи гейла

それを抽出する方法はありますか?

4

1 に答える 1

1

分割し&て最初の部分を取ります。

txt = urllib.unquote(u[0]).split("&")[0]

また、変数名として使用しないでください。これstrは、Python の組み込みの型名です。

編集: 残念ながら、この2&clid=1976874&win=85&msid=1467228292.64946.22901.24595&text=как выбрать смартфон行は他の行とはパターンが異なります。これを他のものと一緒に処理する一般的な方法はありません。正規表現を使用してキリル文字に一致させようとしましたJade Jantzenが、一致しませんでした。したがって、目的のテキストが最後にあるこの1行では、次のようになります

txt = urllib.unquote(u[0]).split("=")[-1]

動作します。それでも、目的のテキストの実際の基準を提供していません。人間として、この特定のサンプルから取得したものを希望するものに変換する方法を言うことができます. しかし、何を一致させるかについての明確なルールがなければ、完全なソリューションを提供することはできません。

行の一部 (再び一部) の"+"代わりに" ". これはおそらく で解決できます.replace("+", " ")

于 2016-09-26T10:09:48.837 に答える