Mr_Ljin 2017-08-25 04:02 采纳率: 0%
浏览 1122

Python+XPath网页爬虫问题

我希望制作百度贴吧的一个小爬虫,爬取内容包括一个帖子中的发帖人、发帖内容,测试网页为https://tieba.baidu.com/p/3905531791,爬取1-5页的内容,代码如下:

 # -*- coding:utf-8 -*-
from lxml import etree
from multiprocessing.dummy import Pool as ThreadPool
import requests
import re
# import json
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

def write(content):
    f.writelines(u'回帖人:'+str(content['user_name'])+'\n')
    f.writelines(u'回帖内容:'+unicode(content['content'])+'\n')

def spider(url):
    html = requests.get(url)
    # print html.text
    selector = etree.HTML(html.text)
    content_field = selector.xpath('//div[@class="l_post l_post_bright j_l_post clearfix  "]')
    item = {}
    for each in content_field:
        print content_field[0]
        print each
        author = each.xpath('//*/li[@class="d_name"]/a/text()')[0]
        content = each.xpath('//*/div[@class="p_content  "]/cc/div/text()')[0]
        num = each.xpath('//*/div[@class="post-tail-wrap"]/span[@class="tail-info"]/text()')
        print content
        print author
        item['user_name'] = author
        item['content'] = content
        write(item)**


if __name__ == '__main__':
    pool = ThreadPool(4)
    f = open('content.txt','w')
    page=[]
    for i in range(1,6):
        newpage = 'https://tieba.baidu.com/p/3905531791?pn=' + str(i)
        page.append(newpage)

    results = pool.map(spider,page)

    pool.close()
    pool.join()
    f.close()

但问题出现在,每次for循环中提取的信息都一样,每一页的发帖人和发帖内容都一样
如下:
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:末日灬圣帝君王
回帖内容: 这个支持一下
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
回帖人:lis945945
回帖内容: 马克一下。
不知道哪里出了问题。。。

  • 写回答

1条回答 默认 最新

  • 1000001000,,,, 2017-08-25 09:08
    关注

    先检查爬取的网页源代码,看是否正确,是否与原网站一致;
    考虑是否需要添加cookie信息

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?