前提・実現したいこと
python-wordpress-xmlrpcを使って、
スクレイピングでwordpressに投稿してサイトを作ろうとしている者です。
今回はスクレイピングの部分ではなく投稿の部分に関する質問です。
tag_listという変数で、
インターネットサイトページから複数個のタグの情報を取得して配列化した後に、
下記のpost_tagへ代入して投稿したいのですがうまくいきません。
例えば対象ページのタグ情報がA、B、C、Dでスクレイピングで、
tag_list=['A','B','C','D']と取得した場合、
投稿したいタグは'A','B','C','D'の4個なのですが、
下記のソースコードの書き方だと投稿したタグは'[A,B,C,D]'の1個になってしまいます。
※なお対象ページごとにタグの個数は異なるので、%sの個数をtag_listの数に合わせることはできません。
(詳しくはソースコード内にて)
該当のソースコード
python
1from wordpress_xmlrpc import Client, WordPressPost 2from wordpress_xmlrpc.methods.posts import GetPosts, NewPost 3from wordpress_xmlrpc.methods.users import GetUserInfo 4from wordpress_xmlrpc.methods import media, post 5 6#ex. tag_list=['A','B','C','D']の場合 7 8post.title = title 9 10post.content = body 11 12post.post_status = 'publish' 13 14 15post.terms_names = { 16 'post_tag': ["%s" %(tag_list)], 17 'category': [category] 18 } 19 20 21""" 22tag_listの個数は取得ページによって異なるので、 23例えば、 24post.terms_names = { 25 'post_tag': ["%s,%s,%s,%s" %(tag_list[0],tag_list[1],tag_list[2],tag_list[3])], 26 'category': [category] 27 } 28のような書き方は汎用性がないので使えません。 29""" 30 31post.slug = slug 32 33wp.call(NewPost(post))
試したこと
tag_listの配列数を取得し、それを'post_tag'で展開すれば良いかと思いましたが、うまくできませんでした。
python
1m = len(tag_list) 2 3for(i in range(0,m-1)): 4 post.post_tag.append(tag_list[i])
と書くと、
AttributeError: 'WordPressPost' object has no attribute 'post_tag'
とエラーが出ました。。。
初心者すぎてすみませんが、
他に何か解決策ご存知の方、ご教授お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。