一見動くように見えますが、もし keyword に「空白」や「日本語」、あるいは「&」などの記号が含まれていたらどうなるでしょうか? URLとして不正な形式になり、エラーが発生したり、意図しない検索結果になったりします。 今回は、Pythonの requests ...
確かに単純なURLならそれでも動くかもしれませんが、URLエンコード(%E3%81%82 など)が含まれていたり、値が空だったりする場合、自前実装はバグの温床になります。 ここでもやはり、Python標準ライブラリ urllib.parse の出番です。