利用xpath和beautifulsoup爬取简单网站

def parser_seputu():
    # user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, " \
    #              "like Gecko) Chrome/68.0.3440.84 Safari/537.36"
    user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; windows NT"
    headers = {"User-Agent": user_agent}
    r = requests.get("http://seputu.com", headers=headers)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text, "html.parser")
    content = {"href": [], "title": []}
    for mulu in soup.find_all(class_="box"):
        for x in mulu.find_all("a"):
            content["href"].append(x.get("href"))
            content["title"].append(x.get("title"))
            # print(x.get("title").split()[0] + " " + x.get("title").split()[1])

    # f = open("xpath.html", "w", encoding="utf-8")
    # f.write(r.text)
    return content

def parse_path(url):
    user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; windows NT"
    headers = {"User-Agent": user_agent}
    r = requests.get(url="http://seputu.com", headers=headers)
    r.encoding = r.apparent_encoding
    html = etree.HTML(r.text)
    div_boxs = html.xpath("//div[@class='box']")
    for div_box in div_boxs:
        for div_a in div_box.xpath("./ul/li/a/@href"):
            print(div_a)
        for div_a in div_box.xpath("./ul/li/a/@title"):
            print(div_a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用xpath爬取链家租房的房源数据,你可以使用Python中的相关库,如requests、bs4和xpath。首先,你需要发送HTTP请求获取网页的HTML内容,可以使用requests库来实现。然后,你可以使用BeautifulSoup库的解析器来解析HTML内容,并使用xpath表达式来提取所需的数据。 在代码中,你可以定义一个主函数,其中包含获取网页、解析HTML、提取数据和保存数据的步骤。你可以使用xpath表达式来选择和提取所需的信息,如房屋所在地区、小区名、户型、面积、朝向和价格等。你还可以使用pandas库将提取的数据保存到Excel文件中。 以下是一个简单的代码示例,用于使用xpath爬取链家租房的房源数据并保存到Excel文件中: ```python import requests from bs4 import BeautifulSoup import pandas as pd import lxml.etree as etree def get_html(url): response = requests.get(url) return response.text def parse_html(html): soup = BeautifulSoup(html, 'html.parser') return soup def extract_data(soup): data = \[\] listings = soup.select('div.content div.leftContent div.content__list--item') for listing in listings: area = listing.select_one('p.content__list--item--des a').text community = listing.select_one('p.content__list--item--des a:nth-of-type(2)').text layout = listing.select_one('p.content__list--item--des span:nth-of-type(1)').text size = listing.select_one('p.content__list--item--des span:nth-of-type(2)').text orientation = listing.select_one('p.content__list--item--des span:nth-of-type(3)').text price = listing.select_one('span.content__list--item-price em').text data.append(\[area, community, layout, size, orientation, price\]) return data def save_to_excel(data, filename): df = pd.DataFrame(data, columns=\['Area', 'Community', 'Layout', 'Size', 'Orientation', 'Price'\]) df.to_excel(filename, index=False) def main(num_pages, filename): base_url = 'https://bj.lianjia.com/zufang/pg{}' all_data = \[\] for page in range(1, num_pages+1): url = base_url.format(page) html = get_html(url) soup = parse_html(html) data = extract_data(soup) all_data.extend(data) save_to_excel(all_data, filename) if __name__ == '__main__': num_pages = int(input('请输入要爬取的页数:')) filename = 'lianjia_rent.xlsx' main(num_pages, filename) ``` 在这个示例中,我们定义了`get_html`函数来发送HTTP请求并获取网页的HTML内容。然后,我们使用BeautifulSoup库的解析器来解析HTML内容,并使用xpath选择器来提取所需的数据。最后,我们使用pandas库将提取的数据保存到Excel文件中。 请注意,这只是一个简单的示例,你可能需要根据具体的网页结构和需求进行适当的修改。另外,为了避免被网站反爬虫机制封禁,你可能需要添加一些反爬虫策略,如设置请求头、使用代理等。 #### 引用[.reference_title] - *1* [利用xpath爬取链家租房房源数据并利用pandas保存到Excel文件中](https://blog.csdn.net/renhongbin614/article/details/104540204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [第二章 爬取案例-链家租房数据获取 2021-09-16](https://blog.csdn.net/qq_21438267/article/details/120337045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值