使用python请求刮取数据

时间:2016-05-15 18:54:36

标签: python python-requests screen-scraping

我想学习如何抓取网页并在此处找到有趣的代码: http://nycdatascience.com/okcupid-scraper/ 它不起作用,但稍微适应我可以让它“几乎”工作,但我仍然坚持一点。

你能帮我吗?

我的python代码为:

session = requests.Session()
session.auth = ('XXXX@gmail.com', 'XXXXX')
session.headers.update({'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'})
req = session.post('https://www.okcupid.com/login',\
data={'username': 'XXXX', 'password':'XXXX'})

url = 'http://www.okcupid.com/match?filter1=0,48&filter2=2,100,18&filter3=5,2678400&filter4=1,1&locid=0&timekey=1&matchOrderBy=SPECIAL_BLEND&custom_search=0&fromWhoOnline=0&mygender=m&update_prefs=1&sort_type=0&sa=1&using_saved_search=&count=30'
page = session.get(url).text

有两件事很奇怪:

1)此代码有效,我确实得到了html代码并且我已登录,因此cookie /会话有效。但是,如果我等待5秒钟并打电话     url ='http://www.okcupid.com/match?filter1=0,48&filter2=2,100,18&filter3=5,2678400&filter4=1,1&locid=0&timekey=1&matchOrderBy=SPECIAL_BLEND&custom_search=0&fromWhoOnline=0&mygender=m&update_prefs=1&sort_type=0&sa=1&using_saved_search=&count=30'     page = session.get(url).text 再次,页面不再认出我了。 Cookie或会话有问题吗?

2)我没有得到我想要的信息;我感兴趣的主要信息在我得到的html代码中缺失:

<div class="match_card_text"> <div class="profile_info"> 
<div class="username"> <a class="name">Loading User</a> </div>

我得到“正在加载用户”,其中应该是真实的信息。如果我在Chrome中打开页面并查看html源代码,那么html代码中就会出现我想要的信息,而不是“正在加载用户”。我如何获得该信息?

0 个答案:

没有答案