Scraping Diabetes Medication Reviews on WebMD
Introduction & Purpose
My career aspirations in data science are to build products and algorithms to identify early indicators of health risks in people and to provide specific information on how to best avoid those risks, whenever possible. As medical, genetic, and vital records are kept quite secure, and reasonably so, I seek to understand how prolonging life expectancy can be achieved by connecting individuals with health risks to the information they need when they need it. In this Web Scraping project, I chose to scrape and analyze reviews of Type II Diabetes Mellitus medications on WebMD. My aim is to create actionable insights for all stakeholders of this condition: diabetic medication consumers, pharmaceutical companies, and WebMD.
Type II Diabetes Mellitus
First, some background on this condition. Diabetes is a disease where the body, namely the pancreas, has difficulty in producing enough insulin; a hormone that helps break down ingested glucose/sugar into the bloodstream and converts it into energy. As a result, blood sugar levels often soar, if not managed correctly, and may cause rapid weight gain/loss, hunger/thirst, fatigue, frequent urination, swollen limbs, and/or increased health risks for other conditions. According to the CDC almost 10%, or 30 million, of the U.S. population has Diabetes, and an estimated 84 Million will likely become diabetic within five years if not treated correctly. Type II Diabetes Mellitus is a specific variation that is adult onset. Common treatments are healthy eating and exercise, oral medication (pills), or insulin injections.
Web Scraping with Scrapy
I used the Python package Scrapy to scrape Type II Diabetes Mellitus reviews on WebMD as the pages do not have many dynamic elements, and the website has a standard hierarchical structure with minimal security protocols. I was able to take the search results for ‘type 2 diabetes mellitus’ (shown above) and crawl all review pages within each medication link listed to the right. Within each review, I extracted the following fields:
- Reviewer (Optional: Age, Sex, Location)
- Condition Name
- Medication Name
- Review Date & Time
- Review Comment
- 5-Max Star Ratings:
- Ease of Use
- How many viewers found this review helpful
With more than 5,500 reviews scraped across 70 medications with reviews, I identified the following insights:
- The top five most effective-rated medications are Oseni Oral, Glucotrol XL Oral, Victoza 3-Pak Subcutaneous, Invokamet Oral, and Prandin Oral; all above 4-rating mean ratings. This insight is most important for consumers because WebMD does not currently feature a method of aggregating ratings across medications, making it difficult to find answers.
- There is a strong (81%) correlation between ‘Effectiveness’ and ‘Satisfaction’ ratings; indicating if consumers feel the drug is effective, they are likely to be satisfied by the results and their experience with the medication. Notably, there is a good (54%) correlation between ‘Ease of Use’ and both ‘Effectiveness’ and ‘Satisfaction’ ratings. This is critical for pharmaceutical companies as a key indicator for how consumers perceive their products, potentially more reliable than short-term prescription sales.
- There is a moderate (33%) correlation between the length of a review comment and the helpfulness up-votes people give that review. This insight can be leveraged by WebMD as a way to optimize their review rankings and provide consumers with a streamlined approach to getting the information others have found most helpful.
- Lastly, there is no significance in the perceived difference in ‘Effectiveness’ across the top five-ranked medications according to an ANOVA* (Analysis of Variance).
*p-value of 13.7%. Assumptions for ANOVA are not confirmed; they are intended for experiment purposes only.
Firstly, I would like to verify the assumptions to validate the ANOVA performed on the top five ranked most effective medications. This could make or break some deep insights for medication consumers in identifying medications that may actually be significantly better.
I would like to dissect the review comments to identify sentiment and sub-conditions through Natural Language Processing (NLP) exercises. The reality is that these medications are not one-size-fits-all. Some diabetics also have poor heart conditions or are anemic, for instance, and must avoid certain medications, or specifically use a smaller subset. This type of information cannot be extracted solely from statistics on the ratings fields alone.
Additionally, I would like to dive into longer-standing medications and do time-series analysis. It is possible that perhaps ratings were punished in the past for drug recalls or negative perceptions in the news that may have been remedied since then. This information would be buried in the hundreds of review pages due to WebMD’s seemingly arbitrary review sorting.
Lastly, I would like to build the public data from WebMD into my career objectives in identifying early indicators of medical conditions, and sharing helpful and effective information about medical treatments with newly diagnosed patients. Being diagnosed with any condition brings individuals and their families so much stress, anxiety, and pain. Finding the right information in a timely manner can mean the difference between life and death. I would like to optimize this unfortunate experience for everyone with the power of data science.
Thank you for reading! If you'd like to see my work on github, click here!