返回信息流老师布置任务让写一个新浪微博的爬虫,目前只完成了模拟登录部分,可是登录完却怎么也写不了了啊,之前用过正则觉得爬取的内容不是很干净,于是想用XPATH的方式,但是怎么也找不到正确的XML,能read得到微博个人页面的html,然后就不知道该怎么办了,怎么办都不对。求各位大神看看能怎么解决!谢谢谢谢!!
auto_login()
url='http://weibo.com/1182350012/profile?topnav=1&wvr=6'
request=urllib2.Request(url)
response=urllib2.urlopen(request)
content_1=response.read().decode('utf-8')
tree=etree.HTML(content_1)
result = etree.tostring(tree, pretty_print=True, method="html")
content_xpath='//div[@class="WB_detail"]/div[@class="WB_text W_f14"]'
contents=tree.xpath(content_xpath)
print len(contents)
for i in contents:
print i.encode('utf-8')
这是登录完后的代码,print tree发现script里面有WB_detail等信息,但是没有中文字,只有类似于来自的编码,不知道这是何种编码方式,用在线的转换器可以转换出正确内容的中文。
再次感谢!!!
这是一条镜像帖。来源:北邮人论坛 / python / #9287同步于 2015/10/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
求问新浪微博怎么用XPATH方式爬取
piaoxuedan
2015/10/28镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
电脑版的html很不规则,你对比一下两种方式就知道了
【 在 piaoxuedan (piaoxuedan) 的大作中提到: 】
: 只有手机版能用xpath么?
: 发自「贵邮」
通过『我邮2.0』发布
但是电脑版也是可爬的吧?
【 在 trouvan 的大作中提到: 】
: 电脑版的html很不规则,你对比一下两种方式就知道了
: 【 在 piaoxuedan (piaoxuedan) 的大作中提到: 】
: : 只有手机版能用xpath么?
: : [url=http
: .........
发自「贵邮」
我记得爬电脑版的时候,我们所需要的那些html是嵌在js里面的
你要拿出来还要先用正则拿出来,而且取出来之后还不一定规则
所以不如直接爬手机版
【 在 piaoxuedan 的大作中提到: 】
: 但是电脑版也是可爬的吧?
:
: 发自「贵邮」
我也想过beautifulsoup,但是觉得xpath更简洁一些,所以想用bs4先把xml结构找出来这是可行的么?因为其实不太会用bs4,时间也比较紧。。
【 在 napoleonwxu 的大作中提到: 】
: 为啥不用bs4?
xpath不是用的XML么
【 在 trouvan 的大作中提到: 】
: 我记得爬电脑版的时候,我们所需要的那些html是嵌在js里面的
: 你要拿出来还要先用正则拿出来,而且取出来之后还不一定规则
: 所以不如直接爬手机版