lxmlを使ってスクレイピングしているのですが、このようにすると、
for elem in html.cssselect("div.product_explain"): print(etree.tostring(elem, encoding="utf-8"))
以下のように帰ってきます。
b'<div class="product_explain"> \n \xe2\x96\xa0\xe3\x82\xab\xe3\x83\xa9\xe3\x83\xbc<br /> \n<br /> \n\xe3\x83\x96\xe3\x83\xa9\xe3\x83\x83\xe3\x82\xaf<br /> \n<br /> \n\xe2\x96\xa0\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xba<br /> \n<br /> \n\xe3\x80\x90S\xe3\x80\x91\xe7\x9d\x80\xe4\xb8\x88\xef\xbc\x9a100cm\xe3\x80\x80\xe3\x83\x90\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a81cm\xe3\x80\x80 \xe3\x82\x86\xe3\x81\x8d\xe4\xb8\x88\xef\xbc\x9a33cm\xe3\x80\x80\xe3\x80\x80\xe3\x82\xa6\xe3\x82\xa8\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a64-76cm<br /> \n\xe3\x80\x90M\xe3\x80\x91\xe7\x9d\x80\xe4\xb8\x88\xef\xbc\x9a101cm\xe3\x80\x80\xe3\x83\x90\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a85cm\xe3\x80\x80\xe3\x82\x86\xe3\x81\x8d\xe4\xb8\x88\xef\xbc\x9a34.5cm\xe3\x80\x80\xe3\x82\xa6\xe3\x82\xa8\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a68-80cm<br /> \n\xe3\x80\x90L\xe3\x80\x91\xe7\x9d\x80\xe4\xb8\x88\xef\xbc\x9a102cm\xe3\x80\x80\xe3\x83\x90\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a89cm\xe3\x80\x80 \xe3\x82\x86\xe3\x81\x8d\xe4\xb8\x88\xef\xbc\x9a36cm\xe3\x80\x80\xe3\x80\x80\xe3\x82\xa6\xe3\x82\xa8\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a72-84cm<br /> \n\xe3\x80\x90XL\xe3\x80\x91\xe7\x9d\x80\xe4\xb8\x88\xef\xbc\x9a103cm\xe3\x80\x80\xe3\x83\x90\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a93cm\xe3\x80\x80\xe3\x82\x86\xe3\x81\x8d\xe4\xb8\x88\xef\xbc\x9a37.5cm\xe3\x80\x80\xe3\x82\xa6\xe3\x82\xa8\xe3\x82\xb9\xe3\x83\x88\xef\xbc\x9a76-88cm<br /> \n<br /> \n\xe2\x96\xa0\xe7\xb4\xa0\xe6\x9d\x90<br /> \n<br /> \n\xe3\x82\xb3\xe3\x83\x83\xe3\x83\x88\xe3\x83\xb3 \xe3\x80\x80\xe3\x83\x9d\xe3\x83\xaa\xe3\x82\xa8\xe3\x82\xb9\xe3\x83\x86\xe3\x83\xab \n </div> \n \n '
1、これは文字化けしているのでしょうか?だとしたら、どのように直せばいいのでしょうか?
2、これだと、<div class="product_explain"></div>のタグも一緒に取得しちゃうようです。
div.product_explainの中に、brタグで区切られた、textがあるのですが、それだけうまく取り出すにはどうしたらいいのでしょうか?
質問文にコードをcodeタグで追記してくださいな。

回答1件
あなたの回答
tips
プレビュー