weixin_41429161 2019-07-31 15:14 采纳率: 100%
浏览 681
已采纳

爬虫方面的问题,返回不了网页里的信息。

response返回不了东西,运行结果只有一个None,我打印了一下data,
发现啥都 没有。因为这个网站是外网,返回不到结果是不是与这个因素有关呢
还希望大佬 能跑一下,解答一下我的问题。

from lxml import html
import requests

etree = html.etree
class News(object):

def __init__(self):

    self.url ='https://www.chinatimes.com/newspapers/260118'
    self.headers ={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"

    }

def get_data(self,url):
    response =requests.get(url,headers=self.headers)
    return response.content

def parse_data(self, data):
    # 创建 element对象
    data = data.decode()
    html = etree.HTML(data)
    el_list = html.xpath('/html/body/div[2]/div/div[2]/div/section/ul/li/div/div/div/h3/a/font')

    data_list = []

    for el in el_list:
        temp = {}
        temp['title'] = el.xpath('')[0]
        temp['link'] = 'https://www.chinatimes.com' + el.xpath("./@href")[0]
        data_list.append(temp)
     try:
        # 获取 下一页的url
        next_url = 'https://www.chinatimes.com' + html.xpath('/html/body/div[2]/div/div[2]/div/section/nav/ul/li[7]/a/@href')[0]

    except:
        next_url = None
    return data_list, next_url



def save_data(self, data_list):
    for data in data_list:
        print(data)

def run(self):
    # url

    next_url = self.url
    while True:

        data = self.get_data(next_url)       
        data_list, next_url = self.parse_data(data)
        self.save_data(data_list)
        print(next_url)

        if next_url == None:
            break

if name == '__main__':
news =News()
news.run()

  • 写回答

3条回答

  • jxlyin 2019-08-01 16:46
    关注

    url = 'https://www.chinatimes.com/newspapers/260118'
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"}
    response = requests.get(url, headers=headers)

    print(response.content)

    返回正常
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误