2017-02-09 8 views
2

私は1つのサイトを擦って練習します。 私はいくつかの不思議な状況があります。beautifulsoupとrequest.post

import requests 
from bs4 import BeautifulSoup 
import json 

class n_auction(object): 
    def __init__(self): 
     self.search_request = { 
       'lawsup':0, 
       'lesson':0, 
       'next_biddate1':'', 
       'next_biddate2':'', 
       'state':91, 
       'b_count1':0, 
       'b_count2':0, 
       'b_area1':'', 
       'b_area2':'', 
       'special':0, 
       'e_area1':'', 
       'e_area2':'', 
       'si':11, 
       'gu':0, 
       'dong':0, 
       'apt_no':0, 
       'order':'', 
       'start':60, 
       'total_record_val':850, 
       'detail_search':'', 
       'detail_class':'', 
       'recieveCode':'',} 

     self.headers = {'User-Agent':'Mozilla/5.0', 
       'Referer':'http://goodauction.land.naver.com/auction/ca_list.php'} 

    def scrape(self, max_pages): 

     addr = [] 

     pageno = 0 
     self.search_request['start'] = pageno 
     while pageno < max_pages: 
      payload = json.dumps(self.search_request) 
      r = requests.post('http://goodauction.land.naver.com/auction/ax_list.php', data=payload ,headers=self.headers) 
      print(r.text) 


      s = BeautifulSoup(r.text) 
      print(s) 

if __name__ == '__main__': 
    scraper = n_auction() 
    scraper.scrape(30) 

私が(r.text)を印刷すると、完全なテキストが下の図のように表示されます。 enter image description here

しかし、beautifulsoupを通過した後、 次のような値がいくつか失われました。 enter image description here

非常に恥ずかしいです。助けてください~~

答えて

1

パーサーをデフォルトのlxmlからhtml.parserに切り替えると私の仕事になりました。

試してみてください。また、s = BeautifulSoup(r.text, 'html.parser')

+0

は、さておきとして、それはあなたが 'pageno'をインクリメントしているようには見えません! – jinksPadlock

+0

ありがとう~~私はそれを遅く見た。ハハ。 あなたは素晴らしいです!良い一日を~~ –